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

如何从textarea解析并去除特殊字体、花式文本及表情符号

移除textarea中的花式文本与特殊字符方案

方案一:转换花式字符为普通文本

若需保留文本内容,仅将特殊字体字符(如🅵🅰🅽🅲🆈)转为普通字母,可通过匹配对应Unicode区块进行映射:

  • 处理圆圈大写字母(🅰-🆉):
e.content = e.content.replace(/[\u{1F770}-\u{1F789}]/gu, match => {
  return String.fromCodePoint(match.codePointAt(0) - 0x1F72F);
});
  • 处理数学粗体无衬线字母(𝐀-𝐙、𝐚-𝐳):
// 大写字母映射
e.content = e.content.replace(/[\u{1D400}-\u{1D433}]/gu, match => {
  return String.fromCodePoint(match.codePointAt(0) - 0x1D400 + 0x0041);
});
// 小写字母映射
e.content = e.content.replace(/[\u{1D468}-\u{1D49B}]/gu, match => {
  return String.fromCodePoint(match.codePointAt(0) - 0x1D468 + 0x0061);
});

其他类型的花式字符(如手写体、斜体字)可依此逻辑扩展:先确定目标字符的Unicode范围,再计算与普通字母的码点差值完成映射。

方案二:直接过滤非标准文本字符

若仅需保留ASCII可打印字符(字母、数字、常用符号),可使用正则直接移除所有非目标字符:

e.content = e.content.replace(/[^\x20-\x7E]/g, '');

若需同时保留中文,调整正则为:

e.content = e.content.replace(/[^\u4E00-\u9FA5\x20-\x7E]/g, '');

合并表情移除逻辑

方案二的正则已覆盖表情符号的移除需求(表情均为非ASCII字符)。若需与你现有的表情过滤规则结合,可合并正则:

e.content = e.content.replace(/([✀-➿]|[-]|�[�-�]|�[�-�]|[‑-⛿]|�[�-�]|[^\u4E00-\u9FA5\x20-\x7E])/g, '');

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 17:55:42