JavaScript正则表达式,在哪里使用转义字符?

Avi*_*ien 16 javascript regex escaping

正则表达式允许使用以下字符:字母数字,空格,' - ','_','&','()'和'/'

这是表达方式

[\s\/\)\(\w&-]
Run Code Online (Sandbox Code Playgroud)

我已经在各种在线测试人员中对此进行了测试并知道它有效,我只是无法让它在代码中正常工作.我尝试的任何东西都会出现sysntax错误..有什么建议吗?

var programProductRegex = new RegExp([\s\/\)\(\w&-]);
Run Code Online (Sandbox Code Playgroud)

R. *_*des 28

您可以使用正则表达式语法:

var programProductRegex = /[\s\/\)\(\w&-]/;
Run Code Online (Sandbox Code Playgroud)

使用正斜杠来分隔正则表达式模式.

如果使用RegExp对象构造函数,则需要传入一个字符串.因为反斜杠是JavaScript字符串中的特殊转义字符,并且它们也是正则表达式中的转义字符,所以您需要使用两个反斜杠在字符串中执行正则表达式转义.使用字符串的等效代码将是:

var programProductRegex  = new RegExp("[\\s\\/\\)\\(\\w&-]");
Run Code Online (Sandbox Code Playgroud)

原始正则表达式中的所有反斜杠都需要在字符串中进行转义才能正确解释为反斜杠.

当然第一种选择更好.当您从某处获取字符串并希望从中生成正则表达式时,构造函数很有用.

var programProductRegex  = new RegExp(userInput);
Run Code Online (Sandbox Code Playgroud)


3rg*_*rgo 6

如果您正在使用String并想要转义字符(,则需要编写\\((意思是写反斜杠,然后是左括号=>转义它).

如果您正在使用该RegExp对象,则每个字符只需要一个反斜杠(如\()