如何在RegExp字符类中使用括号?

时间:2015-07-01 11:15:11

标签: javascript regex

我已经使用此代码在javascript中创建正则表达式

var regex = new RegExp("^[a-zA-Z0-9_\-\\(\\)]$");

我也试过

var regex = new RegExp("^[a-zA-Z0-9_\-\(\)]$");

我总是得到:

Uncaught SyntaxError: Invalid regular expression: /^[a-zA-Z0-9_-\(\)]$/: Range out of order in character class

3 个答案:

答案 0 :(得分:0)

如果要将字符-字面意义地放在字符类中,则需要将其放在其他字符的末尾。因为正则表达式引擎会将其视为字符范围。

[a-zA-Z0-9_()-]

此外,您不需要在字符类中转义正则表达式字符!

请参阅演示https://regex101.com/r/kG2zC4/1

答案 1 :(得分:0)

你的正则表达式必须是,

var regex = new RegExp("^[a-zA-Z0-9_()-]$")

var reg = /^[a-zA-Z0-9_()-]$/;

var reg = /^[\w()-]$/;

答案 2 :(得分:0)

您只需要转义-

new RegExp("^[a-zA-Z0-9_\\-()]$");