我正在尝试通过客户端验证来验证表单中的用户名字段,我遇到了一些麻烦。
我正在尝试将它们与正则表达式匹配,这似乎适用于我的密码强度/匹配。但是,当我尝试将正则表达式更改为适合用户名的正则表达式时,它不起作用。
这是正常的表达式,它会检查长度是否至少为6个字符。
var okRegex = new RegExp("(?=.{6,}).*", "g");
这是另一个不起作用的正则表达式:
var okRegex = new RegExp("/^[a-z0-9_-]{3,16}$/");
如何编写执行用户名验证的正则表达式? (它有一定的长度,只有字母和数字)
答案 0 :(得分:4)
您正在将正则表达式文字与RegExp
构造函数混合使用。使用其中一个,但不是两个:
okRegex = new RegExp('^[a-z0-9_-]{3,16}$');
或
okRegex = /^[a-z0-9_-]{3,16}$/;
答案 1 :(得分:1)
正如@zzzzBow所说,你正在混淆两种使用正则表达式的方法。选择其中一个。现在,分解:
^
匹配字符串的开头(这意味着字符串必须以后面的内容开头)。
[a-z0-9_-]
匹配字符a-z,A-Z,数字0-9 _(下划线)和 - (短划线/连字符)。
{3,16}
说明上述字符类必须有3-16个出现。
$
匹配字符串的结尾,因此在上面的16个字符之后不能是任何内容。
希望有所帮助。