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

如何在JavaScript中替换字符串?修复replaceAll未生效的问题

修复方案

错误原因

  • 你写的正则/text2/g是在匹配字面量字符串"text2",而不是变量text2存储的"ain",原字符串里没有"text2",所以替换毫无效果。
  • 原代码替换成的是"__",和你需要的"___"不一致,需要修正。

修复方法

方法1:用RegExp构造函数实现动态正则匹配

当需要用变量作为正则匹配内容时,必须使用RegExp构造函数,把变量和修饰符传入:

var text2 = 'ain';
let text = "The rain in SPAIN stays mainly in the plain";
// 构造全局匹配的正则,替换为___
let result = text.replaceAll(new RegExp(text2, 'g'), '___');

document.getElementById("demo").innerHTML = result;

如果需要忽略大小写(比如匹配SPAIN里的AIN),给修饰符加上i:

let result = text.replaceAll(new RegExp(text2, 'gi'), '___');

方法2:直接用字符串作为replaceAll的匹配目标

replaceAll本身支持传入字符串进行全局替换,无需正则,这种方式更简单:

var text2 = 'ain';
let text = "The rain in SPAIN stays mainly in the plain";
// 直接传入字符串变量,全局替换为___
let result = text.replaceAll(text2, '___');

document.getElementById("demo").innerHTML = result;

注意:如果需要忽略大小写匹配,只能用方法1的正则方式,字符串参数不支持大小写忽略。

内容的提问来源于stack exchange,提问作者M.Riyan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 10:26:05