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

JS正则replace无法替换__[Text]__为<strong>[Text]</strong>问题求助

问题分析与解决

你的代码没生效的核心原因是没有将replace()的返回值重新赋值给变量——JavaScript中字符串是不可变的,replace()方法不会修改原字符串,而是返回一个替换后的新字符串。

修复后的代码

const content = "Our __world__ is a vast and diverse place, filled with incredible wonders and complexities.";
const result = content.replace(/\__(.*?)__/, "<strong>$1</strong>");
console.log(result);
// 输出: Our <strong>world</strong> is a vast and diverse place, filled with incredible wonders and complexities.

额外优化:全局替换

如果你的文本中有多处__[Text]__格式的内容,需要给正则加上全局标志g,否则只会替换第一个匹配项:

const content = "Our __world__ and __universe__ are full of wonders.";
const result = content.replace(/\__(.*?)__/g, "<strong>$1</strong>");
console.log(result);
// 输出: Our <strong>world</strong> and <strong>universe</strong> are full of wonders.

补充说明

你的正则表达式/\__(.*?)__/本身是没问题的,其中:

  • \__ 匹配两个下划线(其实_在正则里不属于特殊字符,写成/__.*?__/也能正常工作)
  • (.*?) 是非贪婪匹配,确保只会匹配两个下划线之间的内容,不会跨多个下划线对匹配

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 11:35:56