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

Anki卡片模板格式化求助:实现指定文本加粗效果

解决Anki卡片模板中两类文本自动加粗的问题

问题分析

你之前的代码无效,核心原因是正则匹配的是英文双引号,但你实际使用的是中文双引号“”,同时缺少对词源原词的匹配规则。下面是针对需求的完整可行方案:

完整模板代码(针对Etymology字段)

把卡片模板中原有的 {{Etymology}} 替换成以下内容:

<span class="etymology-content">{{Etymology}}</span>

<script>
// 获取词源字段内容
const elem = document.querySelector('.etymology-content');
let content = elem.innerHTML;

// 1. 加粗中文双引号内的文本
content = content.replace(/“([^”]+)”/g, '<b>“$1”</b>');
// 若同时存在英文双引号,可添加此行:
// content = content.replace(/"([^"]+)"/g, '<b>"$1"</b>');

// 2. 加粗词源原词(匹配含特殊元音、无空格的古词,如edlēan、ǫðlask)
// 正则规则:匹配由字母、特殊元音组成的连续单词
content = content.replace(/\b([a-zA-Zēǫð]+)\b/g, '<b>$1</b>');

// 把处理后的内容放回元素
elem.innerHTML = content;
</script>

针对Example字段的处理(按需使用)

如果例句字段也需要加粗引号内文本,将模板中的 {{Example}} 替换为:

<span class="example-content">{{Example}}</span>

<script>
const elem = document.querySelector('.example-content');
let content = elem.innerHTML;
// 同时处理中文/英文引号内文本
content = content.replace(/“([^”]+)”/g, '<b>“$1”</b>');
content = content.replace(/"([^"]+)"/g, '<b>"$1"</b>');
elem.innerHTML = content;
</script>

使用步骤

  1. 打开Anki,选中目标卡组,点击「卡片」进入模板编辑界面
  2. 在「正面」或「背面」模板中,找到对应字段位置,替换成上述代码
  3. 点击「关闭」保存设置,新卡片和旧卡片都会自动应用效果

自定义调整

如果词源原词包含其他特殊字符(如æ、þ),可把正则里的 [a-zA-Zēǫð] 修改为 [a-zA-Zēǫðæþ],按需添加对应字符即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 22:46:18