我的代码的简化版本看起来像这样:
string="test test testtest testtest test";
replacer="test";
string=string.replace(new RegExp(' '+replacer+' ','gi')," REPLACED ");
现在,我只想在它周围有空格的情况下替换一个单词,代码实际上工作正常,但我只是想知道为什么下面哪一个在我的情况下会更好不起作用。
RegExp('\s'+replacer+'\s','gi')
答案 0 :(得分:3)
你为什么不试试这个:
RegExp('\\s'+replacer+'\\s','gi')
答案 1 :(得分:1)
您的示例将使用空格替换制表符。
你可能想要这个:
string=string.replace(new RegExp('\\b'+replacer+'\\b','gi'),"REPLACED");
或者,如果您真的只想 空格来分隔单词,那么您可以使用以下内容:
string=string.replace(new RegExp('(\\s)'+replacer+'(\\s)','gi'),"$1REPLACED$2");
答案 2 :(得分:0)
我尝试过很多东西,但没有正则表达式完美运作。
我的问题是我必须在句子中用"it"
替换<product_name>
。
例如,&#34;它的用途是什么&#34; =&GT; &#34; <product_name>
&#34;
但是在像酸度这样的词汇中,正则表达式将其改为&#34; acid <product_name>
y&#34;这是错误的。
我提出了一个解决我问题的解决方案,并希望与大家分享。
var b=[];
var sent="what is use of it";
sent.split(" ").forEach((x) => {if(x=='it'){x=<product_name>;}b.push(x)});
sent=b.join(" ");