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

正则表达式修正:处理孟加拉语字符时保留首字符替换非字母数字为下划线

解决孟加拉语字符替换异常的正则表达式问题

问题出在原正则未覆盖Unicode组合标记(\p{M}):孟加拉语的চার并非单一Unicode字符,而是由চ(U+099A,字母)、া(U+09BE,非间距组合标记)、র(U+09B0,字母)组成。原正则/(?!^)[^\p{L}\p{N}]+/gu的排除集仅包含字母(\p{L})和数字(\p{N}),会把组合标记া判定为“非字母数字字符”并替换成下划线,导致异常输出。

修正后的正则需要将组合标记纳入保留范围:

text.replace(/(?!^)[^\p{L}\p{N}\p{M}]+/gu, '_')

关键说明

  • \p{M}:匹配所有Unicode标记字符,包含孟加拉语元音附标这类非间距组合标记,确保字母与附属标记被视为整体保留
  • (?!^):维持原逻辑,首个字符不受替换规则影响
  • /gu:全局匹配+Unicode模式,保证多语言字符的正确识别

测试孟加拉语字符চার时,该正则会完整保留字符组合,不会插入多余下划线。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 23:33:15