在JavaScript中使用RegExp对象时要转义哪些字符?

时间:2015-03-17 21:56:32

标签: javascript regex

我有正则表达式^\(\d+\),它设计用于匹配包含数字的括号,并执行预期的操作。

我想扩展它以匹配括号中的数字,后跟一个空格,后跟一个来自变量的字符串。我知道我可以创建一个RegExp对象来执行此操作,但我无法理解要逃避哪些角色才能使其工作。有人能够向我解释这个吗?

1 个答案:

答案 0 :(得分:2)

如果您不使用RegEx,则可以使用文字符号

/^\(\d+\)/

但是当你使用RegEx 构造函数时,你需要双重转义这些符号:

var re = new RegExp("^\\(\\d+\\)");

MDN Reference

  

有两种方法可以创建一个RegExp对象:一个文字表示法和一个   构造函数。指示字符串,文字的参数   表示法时参数不要使用引号   构造函数确实使用引号。

     

...   当正则表达式保持不变时,使用文字表示法。

     

...   当您知道正则表达式模式将> gt;时使用构造函数。正在改变,或者你不知道这种模式并从中得到它   另一个来源,例如用户输入。

现在,如果你有一个变量,最好坚持使用构造函数方法。

var re = new RegExp('^\\(\\d+\\) ' + variable);

逃避斜线是强制性的,因为它本身就是一个逃避的符号。