我用这个正则表达式来改变所有的符号或任何非数字字符,以下划线剩余的第一个#值。
text.replace(/(?!^)[^\p{L}\p{N}]+/gu, '_');
这将正常工作,但对于孟加拉字母,当用户输入চার时,它会像这样打印:চ__া_র请提供正确的正则表达式。
চার
চ__া_র
htrmnn0y1#
第二个字符(\u09BE)是09BE孟加拉元音符号AA,属于“标记,空格组合”Unicode类别(Mc)。这意味着,您需要向求反字符类添加一个变音符号Unicode类别类:
\u09BE
AA
Mc
/(?!^)[^\p{L}\p{N}\p{M}]+/gu
查看JavaScript演示:
console.log("চার".replace(/(?!^)[^\p{L}\p{N}\p{M}]+/gu, '_'))
1条答案
按热度按时间htrmnn0y1#
第二个字符(
\u09BE
)是09BE孟加拉元音符号AA
,属于“标记,空格组合”Unicode类别(Mc
)。这意味着,您需要向求反字符类添加一个变音符号Unicode类别类:
查看JavaScript演示: