Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
带变量的javascript正则表达式?_Javascript_Regex - Fatal编程技术网

带变量的javascript正则表达式?

带变量的javascript正则表达式?,javascript,regex,Javascript,Regex,我正在尝试执行一个正则表达式,其中包含一个变量作为查询 //This works $('body *').replaceText(/\b(Toronto)/gi, nameWrapper ); 我需要在变量中加上“Toronto” var query = "Toronto"; $('body *').replaceText(/\b( -- query VARIABLE HERE -- )/gi, nameWrapper ); 您需要使用从字符串生成正则表达式: var query = "

我正在尝试执行一个正则表达式,其中包含一个变量作为查询

//This works
$('body *').replaceText(/\b(Toronto)/gi, nameWrapper );
我需要在变量中加上“Toronto”

var query = "Toronto";
$('body *').replaceText(/\b( --  query VARIABLE HERE --  )/gi, nameWrapper );
您需要使用从字符串生成正则表达式:

var query = "Toronto";
$('body *').replaceText(RegExp("\\b(" + query + ")", "gi"), nameWrapper);
要正确引用字符串,可以使用以下命令:

RegExp.quote = function(str) {
    return str.replace(/(?=[\\^$*+?.()|{}[\]])/g, "\\");
}
然后,在构建正则表达式时,只需使用
RegExp.quote(query)
而不是
query

var query = "Toronto";
$('body *').replaceText(RegExp("\\b(" + RegExp.quote(query) + ")", "gi"), nameWrapper);
试着这样做:

var query = 'Toronto';
var regex = new RegExp('\\b(' + query + ')', 'gi');
$('body *').replaceText(regex, nameWrapper);

感谢您在regex cleaner上付出了额外的努力。@BahaiResearch.com:不幸的是,JavaScript没有提供这样的方法。