这个正则表达式验证中缺少什么?

时间:2012-02-01 04:03:45

标签: javascript regex

这个正则表达式有什么问题?

^[a-zA-Z,\d,\&,\#,\-,\(,\']{3,15}$       

有效输入为alphanumericspace#&'-,最高和最小长度分别为3和15。

当我输入以下有效输入时,它会失败:

MT90#&' ABCD

5 个答案:

答案 0 :(得分:2)

您不需要逗号分隔符,也不需要转义所有这些字符:

^[a-zA-Z\d\s&#-\(']{3,15}$

答案 1 :(得分:1)

您错过了空间\s,无需在字符集中使用,

这没关系:

/^[a-zA-Z\d\s&#-\(']{3,15}$/

更新 \s将匹配所有空格(包括制表符和换行符以及空格),如果您只想要空格,请更改为:

/^[a-zA-Z\d &#-\(']{3,15}$/

答案 2 :(得分:0)

你错过了一个空间。试试这个:[a-zA-Z\d\&\#\-\(\' ]{3,15}$

答案 3 :(得分:0)

您只需要转义以下字符:

[ \ ^ $ . | ? * + ( )

您也不需要在集合中的字符之间加',' 如果您在正则表达式中使用\s,则会涵盖spacetabline breaks

答案 4 :(得分:-1)

^[a-zA-Z\d\&\#\-\(\'\ ]{3,15}$ 

删除逗号,你很高兴