我有这个正则表达式:
/^[A-z0-9\._-]{3,24}+$/i
这应该只匹配3到24个字符长的字符串,并且只匹配字符a-z,A-Z,0-9,然后也是。 _和 - 字符。
问题是这也匹配" ^ _ ^"等字符串。有人刚刚创建了一个用户名,所以这绝对是一个问题!有人能用我的正则表达式发现问题吗?
答案 0 :(得分:3)
使用此正则表达式:
/^[\w.-]{3,24}$/
A-z
与[A-Za-z]
不同,因为它还包含其他字符,例如^
(感谢杰克)
在+
之后删除额外的量词{3,24}
,这意味着整个字符串的一个或多个实例。
PS:我还缩短了您的正则表达式以使用\w
代替[A-Za-z0-9_]
答案 1 :(得分:2)
由于您使用+
{3,24}
/^[A-z0-9\._-]{3,24}$/i
正如下面的评论所指出的,A-z
也匹配^字符。在这种情况下,A-Za-z
会更好;然而,到目前为止\w.-
的答案是最优雅的。