如何从javascript中的字符串中剥离(或正则表达式匹配)unicode字符?

时间:2012-10-03 08:05:14

标签: javascript unicode

我正在使用用户脚本修改的网站有一些我想要修改的文本。文本中似乎有一个unicode字符。当我在屏幕上查看它甚至用jQuery将其提取到变量时,看起来像这样:

2 others

但是,如果我使用相同的文本创建自己的变量然后进行比较,则它们会显示为false。所以我将网站的文本复制/粘贴到vim中,它看起来像这样:

2<200e> others

最好我可以告诉它这是一个空格的unicode字符(?)。我希望能够将此字符串与正则表达式匹配,例如:

^(\d+(?:,\d+)*)\s+(.*)

但是在带有嵌入式unicode字符的字符串上,它会失败。 (它在我自己输入的'2 others'文本中工作正常。)

有什么方法可以从文本中删除这个unicode吗?我尝试了以下,但无济于事:

text.replace('\u200e\','')

text.replace('200e','')

text.replace('\%20','')

text.replace('\%u200e','')

或者,或者,我可以调整我的正则表达式以匹配“其他2”或带有嵌入式200e unicode字符的相同文本吗?

1 个答案:

答案 0 :(得分:5)

尝试使用实际的正则表达式。

text = text.replace(/\u200e/g, '');

  

我可以调整我的正则表达式以匹配“其他2”或带有嵌入式200e unicode字符的相同文本吗?

您可以更改正则表达式中的\s以包含U + 200E,例如

^(\d+(?:,\d+)*)[\s\u200e]+(.*)
相关问题