我希望在javascript中使用正则表达式进行名称检查。
我想出了这个,但感觉不对。关于如何让它变得万无一失的任何建议?
^[A-Za-z0-9]+[A-Za-z0-9_@-.]{30}
答案 0 :(得分:4)
你很接近,这是正确的正则表达式:
/^[a-z0-9][\w@.-]{0,30}$/i
我应用了以下变化:
$
锚a-zA-Z0-9_
替换为\w
并将-
移至字符类的末尾{30}
更改为{0,30}
通过一些单元测试来查看Regex101-Demo。
答案 1 :(得分:1)
^[A-Za-z0-9][A-Za-z0-9_@.-]{0,30}
-
放在括号中,因此不会被用作范围{,30}
+
(没有它,你会得到> 31个字符)答案 2 :(得分:1)
您可以随时访问www.regexr.com
查看您的模式\-
。{30}
更改为{0,30}
,因为它不需要长度为31个字符A-Z
部分$
结果如下所示:
/[a-z0-9][a-z0-9@\-._]{0,30}/i