我试图让字母数字和一些特殊字符Javascript成为正则表达式字母,数字和特殊字符
var regx = /^[A-Za-z0-9._-\] ]+$/;
我试着用斜杠转义]的迹象,但它仍然不工作。 我缺少什么
我试图让字母数字和一些特殊字符Javascript成为正则表达式字母,数字和特殊字符
var regx = /^[A-Za-z0-9._-\] ]+$/;
我试着用斜杠转义]的迹象,但它仍然不工作。 我缺少什么
您还需要躲避-
字符:
摆脱-
并不总是必要的。然而,在这里,它被用在方括号内,这使得JavaScript引擎假定你正在试图指定范围从_-]
导致“字符类中的范围失序”错误。
注意/[_-a]/
是有效的正则表达式匹配和字符_
,`
和a
(ASCII码95 ... 97);这可能不是预期的结果。
如果您尝试您正则表达式在网上正则表达式测试仪像regex101你会得到错误:
你必须使用\-
逃脱-
:
^[A-Za-z0-9._\-\] ]+$
Btw,yo ü可以缩短你的正则表达式来:
^[\w.\-% ]+$
编辑:添加正则表达式的评论:
^[\w.-\]\[ #$>()@{}'"]+$
我修改了正则表达式:var regx = /^[A-Za-z0-9._-%] + $ /;我包括%,现在当我在Chrome中运行它时,我在字符类中出现语法错误范围失序。我想包含像#$> []()@ {}'“和字母数字的特殊字符。 – Mary 2014-08-28 20:40:18
@Mary我已经更新了我的回答以供您评论。正则表达式有需要转义的特殊字符,所以短划线是一个你需要将它转义为\ - 。顺便说一句,如果你的问题得到解答,你可以考虑将你的问题标记为已解决 – 2014-08-28 20:50:35
你是什么样的测试,什么地方出了错? – 2014-08-28 20:01:28
我相信你的意思是反斜杠(\\),而不是正斜杠(/)。 – 2014-08-28 20:03:21