javascript - 为什么javascript中的.replace()会替换then中的 "the"?

标签 javascript regex

如果我这么做了

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

那么 y 就等于

"dog n cat ran" 

删除(或替换)字母“the”后,n 将保留。

如何避免这种情况发生?

最佳答案

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

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

否则,/the/ 匹配 thenbreathethesis 等,就像\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"

关于javascript - 为什么javascript中的.replace()会替换then中的 "the"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24966771/

相关文章:

javascript - 正则表达式匹配慢

javascript - 正则表达式查找字符串中的 URL

python - 正则表达式匹配并替换多个模式

javascript - Node-webkit 中的音频使用 node js 和 Web Audio API

regex - 消极展望 future

javascript - Javascript 中的部分正则表达式匹配

javascript - CSS :before/:after Selectors in IE 6, 7

javascript - 如何在我的 Chrome 应用程序中访问本地文件?

Javascript/Json 请求对象返回 null

javascript - 如果屏幕上看不到某个类,请执行某些操作