我不太了解regex,当涉及到用户名时,它变得有点棘手,所以我请求我的程序员同事帮助我根据某些条件验证用户名。
- 用户名只能包含字母、数字、句点和下划线
- 用户名可以以下划线开始和结束,但不能以句点结束。(出于安全原因(
- 用户名长度应介于4到20个字符之间
- 不允许使用空格
有效和无效用户名的示例:
joshvalid
.josh_invalid
_josh。invalid
_josh_132.bradvalid
josh bradinvalid
我已经搜索过了,但我找到的答案并没有太大帮助。这是我现在的正则表达式:
RegExp('^(?=[A-Za-z0-9._]{4,20}$)[^_.].*[^_.]');
提前感谢
这可以在没有任何前瞻性的情况下实现:
/^w[w.]{2,18}w$/
如果要使用RegExp
,请使用:
var re = new RegExp("^\w[\w.]{2,18}\w$");
RegEx演示
图案详细信息:
w
:是[a-zA-Z0-9_]
的快捷方式^
:启动w
:匹配单词字符[w.]{2,18}
:匹配2到18个计数的字或点字符,从而使总长度在4到20之间w
:匹配单词字符$
:结束