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

JavaScript的replace方法仅替换首个{}配对符号问题咨询

问题原因

JavaScript 内置的String.replace()方法在第一个入参为普通字符串时,默认只会替换第一个匹配到的字符。你代码中对{和}的替换都只传入了字符串格式的匹配规则,因此仅第一对大括号会被替换为<sup>和</sup>标签,第二对大括号不会被命中处理。

修复方案

将{和}的匹配规则更换为带全局匹配标识g的正则表达式即可,修改后的完整代码如下:

function fms(e) {
  let eq = e
  eq = eq.replace('f(', '<em>f</em>(')
  eq = eq.replace(' / ', ' &#247; ')
  // 加g标识全局匹配所有{
  eq = eq.replace(/{/g, '<sup>')
  // 加g标识全局匹配所有}
  eq = eq.replace(/}/g, '</sup>')
  return eq
}
let a = fms('x{y} x{y}')
console.log(a)

修改后执行代码,输出结果为x<sup>y</sup> x<sup>y</sup>,符合预期需求。如果后续需要让f(和/ 的替换也支持全局匹配,同样可以把对应匹配规则更换为带g标识的正则即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 07:30:03