javascript-正则表达式字母数字和特殊字符

时间:2014-08-28 20:00:33

标签: javascript regex

我正在尝试允许使用字母数字和一些特殊字符

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

我尝试使用正斜杠转义符号,但它仍然无法正常工作。 我缺少什么

2 个答案:

答案 0 :(得分:3)

您还需要转义-字符:

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

并非总是需要转义-。但是,它在方括号内使用,这使得JavaScript引擎假设您正在尝试指定_-]的范围,这导致“字符类中的范围乱序”错误。

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

答案 1 :(得分:1)

如果您在regex101等在线正则表达式测试器上试用正则表达式,则会收到错误消息:

<强> Regex link

enter image description here

您必须使用-转义\-

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

顺便说一下,你可以将你的正则表达式缩短为:

^[\w.\-% ]+$

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

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

<强> Working demo