我有这个变量:
var search = "dummy";
var replace = "<strong>" + search + "</strong>";
var contents = "my contents are here and this dummy value should be bolded...";
contents.replace(/search/gi, replace);
那么,如何在我的RegEx模式下设置此“搜索”变量,然后使用/ gi设置进行匹配。
答案 0 :(得分:4)
尝试
new RegExp('yourSearchHere', 'gi');
你还应该意识到,你必须逃避某些序列。顺便说一句。当你构造这样的正则表达式时,你必须双重逃避这些(新的RegExp('\\ n') - &gt;匹配\ n)
答案 1 :(得分:3)
您还可以使用RegExp对象创建正则表达式:
search = "dummy";
x = new RegExp(search,"gi");
var search = "dummy";
var replace = "<strong>" + search + "</strong>";
var contents = "my contents are here and this dummy value should be bolded...";
window.alert(contents.replace(x, replace));
答案 2 :(得分:1)
您可以使用backreferences: 1美元是记住你与正则表达式匹配的内容。这样做是因为您要搜索的单词放在圆括号内,形成一个捕获组。
var contents = "my contents are here and this dummy value should be bolded...";
function makeStronger( word, str ) {
var rxp = new RegExp( '(' + word +')', 'gi' );
return str.replace( rxp, '<strong>$1<\/strong>' );
}
console.log( makeStronger( 'dummy', contents ) );
// my contents are here and this <strong>dummy</strong> value should be bolded...