我为名称验证创建了一个正则表达式,其中只有“_”,“ - ”,“'”,“。 “允许。
这是正则表达式:
^[a-zA-Z][a-zA-Z0-9\.\-_']{1,24}$
问题在于它允许名称为@
,请检查Fiddle demo:
var str = "deepak@";
var str2 = "@@";
alert(str.match("^[a-zA-Z][a-zA-Z0-9\.\-_]{1,24}$"));//allowing why?
alert(str2.match("^[a-zA-Z][a-zA-Z0-9\.\-_]{1,24}$"));//not allowing
预期:@
的名称不允许。
注意:当我在https://regex101.com/#javascript中测试这个正则表达式时,它的工作正常
答案 0 :(得分:4)
不要忘记在Javascript中使用正则表达式分隔符:
alert(str.match(/^[a-zA-Z][a-zA-Z0-9\.\-_]{1,24}$/));
甚至更好:
alert(str.match(/^[a-zA-Z][\w'.-]{1,24}$/));
答案 1 :(得分:-1)
我想这会做同样的事情:
str.match(/^\w{1,24}$/);
<强>定义:强>
\ w元字符用于查找单词字符。 单词字符是a-z,A-Z,0-9中的字符,包括_(下划线)字符。