You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript中str.replace()无法替换所有匹配字符的问题求助

问题原因

JavaScript里的String.replace()方法,要是第一个参数传的是普通字符串,只会替换第一个匹配到的目标字符,不会全局替换。这就是你只看到第一个单引号/字母n被替换,最后一个没变化的原因。

解决方案

要实现所有匹配项都被替换,得把第一个参数改成带g(全局匹配)标志的正则表达式:

处理单引号的正确代码

var tester = "O'neal is walkin'";
tester = tester.replace(/'/g, "''"); 
console.log(tester);
// 输出: O''neal is walkin''

处理字母n的正确代码

var tester = "O'neal is walkin";
tester = tester.replace(/n/g, "$&g");
console.log(tester);
// 输出: O'ngeal is walking
补充说明
  • 正则表达式里的g标志是关键,它会让方法匹配字符串中所有符合条件的字符,而不是只找第一个。
  • 替换单引号时,直接写"''"和用"$&'"效果完全一样,前者更直观,$&的作用是引用匹配到的原字符,两种写法都能达到目的。

内容的提问来源于stack exchange,提问作者BlackTecno

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 22:50:26