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

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


我尝试用正斜杠转义]符号,但仍然无法正常工作。
我在想什么

最佳答案

您还需要转义-字符:

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


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

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

10-06 07:36
查看更多