我正在使用jquery验证引擎并尝试使用regexp添加自定义验证。
但是如何将其设置为仅允许数字,连字符和+符号?
我尝试过不同的方式,如:
^[0-9a-zA-Z -+]+$
^[0-9a-zA-Z -\+]+$
但如果我在连字符后加上加号,它们都没有用。为什么呢?
答案 0 :(得分:3)
在字符类中,-
(连字符)用于表示字符范围(就像0-9
表示从0
到9
)。您可以将其转义,或将其放在最后以使其正常工作:
^[0-9a-zA-Z\-+]+$
^[0-9a-zA-Z+-]+$
编辑:另外,我不确定你把空间放在那里。我因为你的限制而将其删除了,但如果需要,你可以将其添加回来(在第二个正则表达式的连字符之前)。
答案 1 :(得分:1)
连字符创建一个范围(就像你使用0-9
一样。在你的情况下,它会生成一个从空格到+
的范围(以ASCII / Unicode顺序)。这是很多字符: !"#$%&'()*+
和空间本身。
转义连字符或将其放在最后(除非你想要接受空格,否则删除空格):
^[0-9a-zA-Z+-]+$
答案 2 :(得分:1)
-
在角色类中具有特殊含义。事实上,您甚至在a-z
,A-Z
和0-9
群组中使用它。
要使用文字连字符,请将其转义\-
或将其放在课程结尾(]
之前)
答案 3 :(得分:0)
试试这个正则表达式
^[0-9a-zA-Z+-]+$