Javascript - 只有在周围有空格时才使用正则表达式替换单词

时间:2009-12-01 03:57:05

标签: javascript regex

我的代码的简化版本看起来像这样:

string="test test testtest testtest test";
replacer="test";
string=string.replace(new RegExp(' '+replacer+' ','gi')," REPLACED ");

现在,我只想在它周围有空格的情况下替换一个单词,代码实际上工作正常,但我只是想知道为什么下面哪一个在我的情况下会更好不起作用。

RegExp('\s'+replacer+'\s','gi')

3 个答案:

答案 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(" ");