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

Anki脚本问题:仅首个例句目标词加粗,需实现全部例句目标词加粗

修复Anki例句中目标词仅首次加粗的问题

你的脚本只能给首个目标词加粗,是因为JavaScript的String.replace()方法直接传字符串时,只会替换第一个匹配到的内容。要实现所有目标词都加粗,得用带全局匹配标志的正则表达式。

修改后的完整代码

<span id="sentch"> {{sentch}} </span>

<script>
// 正则特殊字符转义函数(可选,若目标词含.、*、?等字符则需要)
function escapeRegExp(string) {
  return string.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
}

var hanzi = '{{hanzi}}';
// 若目标词无正则特殊字符,可直接用hanzi,无需转义
var targetWord = escapeRegExp(hanzi);
var sentchContent = document.getElementById("sentch").innerHTML;
document.getElementById("sentch").innerHTML = sentchContent.replace(new RegExp(targetWord, 'g'), "<b>" + hanzi + "</b>");
</script>

关键说明

  • 用new RegExp(目标词, 'g')创建正则表达式,其中g是全局匹配标志,会匹配所有符合条件的目标词
  • 若你的目标词可能包含正则特殊字符(比如$、.、*、(等),必须使用escapeRegExp函数转义,否则正则会匹配出错
  • 若确定目标词都是普通汉字/无特殊字符,可以简化代码,去掉转义函数,直接用new RegExp(hanzi, 'g')

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 21:01:22