使用replace()替换内容过于广泛。

5

我正在使用这行代码将t替换为g,当t后面不跟字母p时:

"tpto".replace(/(t)[^p]/g, "g");

然而,结果是tpg,而我预期的是tpgo。由于我不知道在t后面会跟什么字母,所以我需要一些动态的东西,但我不知道该怎么做,有什么建议吗?

1个回答

10
你可以使用负向先行断言
"tpto".replace(/t(?!p)/g, "g");
// => "tpgo"
  • /t(?!p)/: 只有当不紧跟着 p 时(负向先行断言),t 才匹配。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接