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

如何用Unicode字符实现日文删除线?现有方法显示异常求助

实现日文及亚洲语言的无HTML标签删除线效果

当前通过给每个字符追加半宽删除线组合字符̶(Unicode:\u0336)的方式,仅能正常显示英文等半宽字符的删除线,日文等全宽亚洲语言字符会出现带线方块的异常显示——这是因为半宽删除线标记无法适配全宽字符的排版宽度。

解决方案:区分全宽/半宽字符匹配对应删除线标记

使用全宽删除线组合字符\uFE63(对应字符:︣)适配日文、中文等全宽字符,半宽字符仍保留原半宽删除线标记,修改后的代码如下:

function strike(text) {
  // 正则匹配全宽字符(覆盖日文、中文、全宽符号等)
  const isFullWidthChar = char => /[\u4E00-\u9FFF\u3040-\u30FF\uFF00-\uFFEF]/.test(char);
  
  return text
    .split('')
    .map(char => {
      return char + (isFullWidthChar(char) ? '\uFE63' : '\u0336');
    })
    .join('');
}

// 测试示例
console.log(strike('this is English strikethrough'));
console.log(strike('のスレッドで、スクリーンシ'));

原理说明

  • 半宽字符(英文、数字、半宽符号)使用\u0336,该标记会在字符中间生成适配半宽的删除线;
  • 全宽亚洲语言字符使用\uFE63,这是专门针对全宽字符设计的组合删除线标记,能完美贴合全宽字符的宽度,避免出现方块异常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 09:18:26