在JavaScript中使用RegExp对象时要转义哪些字符?
我有一个regex在JavaScript中使用RegExp对象时要转义哪些字符?,javascript,regex,Javascript,Regex,我有一个regex^\(\d+\),它被设计为匹配包含数字的括号,并且它做了预期的事情 我想扩展它以匹配括号中的数字,后跟一个空格,后跟一个来自变量的字符串。我知道我可以装箱一个RegExp对象来做这件事,但我很难理解要转义哪些字符才能让它工作。有人能给我解释一下吗?当您不使用RegEx时,您可以使用文字符号: /^\(\d+\)/ 但是当您使用RegEx构造函数时,需要对这些符号进行双重转义: var re=new RegExp(“^\”(\\d+\\)” : 创建RegExp对象有两种方法:
^\(\d+\)
,它被设计为匹配包含数字的括号,并且它做了预期的事情
我想扩展它以匹配括号中的数字,后跟一个空格,后跟一个来自变量的字符串。我知道我可以装箱一个
RegExp
对象来做这件事,但我很难理解要转义哪些字符才能让它工作。有人能给我解释一下吗?当您不使用RegEx
时,您可以使用文字符号:
/^\(\d+\)/
但是当您使用RegEx构造函数时,需要对这些符号进行双重转义:
var re=new RegExp(“^\”(\\d+\\)”代码>
:
创建RegExp对象有两种方法:文字表示法和
构造器。要指示字符串,请将参数设置为文本
在将参数添加到
构造函数函数不使用引号
。。。
当正则表达式保持不变时,使用文字表示法
。。。
当您知道正则表达式模式将>更改时,或者您不知道该模式并从中获取它时,请使用构造函数
另一个源,例如用户输入
现在,如果您有一个变量,最好坚持使用构造函数方法
var re = new RegExp('^\\(\\d+\\) ' + variable);
转义斜杠是必须的,因为它本身就是一个转义符号。我的措辞有点含糊不清。我不想匹配(34变量)
,但要匹配(34)变量
。因此,我使用了var re=newregexp('^\\(\\d+\\\)'+变量)代码>。谢谢你帮我解决这个问题:)@Michael:很好,我更新了答案,还添加了更多关于这个问题的内容。