我想根据这个模式验证用户名:
- 允许的字符:字母、数字、连字符、下划线
- 第一个字符必须是字母或数字
- 用户名不能全是数字
这个正则表达式满足上面的1和2,但是我想不通如何满足3:
/^[a-zA-Z\d][\w\-]+$/
(我正在使用 Ruby,如果相关的话)
最佳答案
不是很高效,但是很简单:
/^(?!\d+$)[a-zA-Z\d][\w\-]+$/
前瞻只是意味着:“后面不是一串数字,一直持续到最后”。
关于ruby - 表示 "at least one non-digit"的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2125907/