为什么javascript中的.replace()会替换当时的“the”?

时间:2014-07-26 01:56:40

标签: javascript regex

如果我做了

var x="the dog then the cat ran";
var y=x.replace(/the/g,"");

然后y等于

"dog n cat ran" 

在收到字母""之后,n将保留。从那时起删除(或替换)。

如何防止这种情况发生?

1 个答案:

答案 0 :(得分:6)

您需要添加边界标记,如下所示:

var x="the dog then the cat ran";
var y=x.replace(/\bthe\b/g,"");
// y = " dog then  cat ran"

否则,/the/thenbreathethesis等匹配,就像the一样容易。 \b需要字边界。

如果您也要删除then,请尝试以下操作:

var x="the dog then the cat ran";
var y=x.replace(/\bthe\S*\b/g,"");
// y = " dog    cat ran"

摆脱多余的空间:

var x="the dog then the cat ran";
var y=x.replace(/\bthe\S*\b\s*/g,"");
// y = "dog cat ran"