how to strip (or regex match) a unicode character from a string in javascript? - Stack Overflow

A website I'm modding with a userscript has some text I want to modify.The text appears to have

A website I'm modding with a userscript has some text I want to modify. The text appears to have a unicode character in it. When I look at it on screen or even extract it to a variable with jQuery, it looks like this:

2 others

However, if I create my own variable with that same text and then do a parison, they e up as false. So I copied/pasted the site's text into vim and it looks like this:

2<200e> others

Best I can tell this is a unicode character for space (?). I want to be able to match this string with a regex such as:

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

but on this string with the embedded unicode character it fails. (it works fine on my own typed text of '2 others').

Is there some way I can strip this unicode out of the text? I tried the following, to no avail:

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

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

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

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

Or, alternatively, can I adjust my regex to match either '2 others' or the same text with the embedded 200e unicode char?

A website I'm modding with a userscript has some text I want to modify. The text appears to have a unicode character in it. When I look at it on screen or even extract it to a variable with jQuery, it looks like this:

2 others

However, if I create my own variable with that same text and then do a parison, they e up as false. So I copied/pasted the site's text into vim and it looks like this:

2<200e> others

Best I can tell this is a unicode character for space (?). I want to be able to match this string with a regex such as:

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

but on this string with the embedded unicode character it fails. (it works fine on my own typed text of '2 others').

Is there some way I can strip this unicode out of the text? I tried the following, to no avail:

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

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

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

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

Or, alternatively, can I adjust my regex to match either '2 others' or the same text with the embedded 200e unicode char?

Share Improve this question asked Oct 3, 2012 at 8:05 mixmix 7,16115 gold badges65 silver badges94 bronze badges
Add a ment  | 

1 Answer 1

Reset to default 6

Try to use an actual regex instead.

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

can I adjust my regex to match either '2 others' or the same text with the embedded 200e unicode char?

You could just change the \s in your regex to include U+200E as well, e.g.

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

发布者:admin,转转请注明出处:http://www.yc00.com/questions/1745486380a4629786.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信