2014-08-28 110 views
1

我试图让字母数字和一些特殊字符Javascript成为正则表达式字母,数字和特殊字符

var regx = /^[A-Za-z0-9._-\] ]+$/; 

我试着用斜杠转义]的迹象,但它仍然不工作。 我缺少什么

+0

你是什么样的测试,什么地方出了错? – 2014-08-28 20:01:28

+0

我相信你的意思是反斜杠(\\),而不是正斜杠(/)。 – 2014-08-28 20:03:21

回答

3

您还需要躲避-字符:

摆脱-并不总是必要的。然而,在这里,它被用在方括号内,这使得JavaScript引擎假定你正在试图指定范围从_-]导致“字符类中的范围失序”错误。

注意/[_-a]/是有效的正则表达式匹配和字符_`a(ASCII码95 ... 97);这可能不是预期的结果。

1

如果您尝试您正则表达式在网上正则表达式测试仪像regex101你会得到错误:

Regex link

enter image description here

你必须使用\-逃脱-

^[A-Za-z0-9._\-\] ]+$ 

Btw,yo ü可以缩短你的正则表达式来:

^[\w.\-% ]+$ 

编辑:添加正则表达式的评论:

^[\w.-\]\[ #$>()@{}'"]+$ 

Working demo

+0

我修改了正则表达式:var regx = /^[A-Za-z0-9._-%] + $ /;我包括%,现在当我在Chrome中运行它时,我在字符类中出现语法错误范围失序。我想包含像#$> []()@ {}'“和字母数字的特殊字符。 – Mary 2014-08-28 20:40:18

+0

@Mary我已经更新了我的回答以供您评论。正则表达式有需要转义的特殊字符,所以短划线是一个你需要将它转义为\ - 。顺便说一句,如果你的问题得到解答,你可以考虑将你的问题标记为已解决 – 2014-08-28 20:50:35

相关问题