8

我需要替换此处定义的 unicode 字符

到目前为止我已经得到了这个,但它似乎删除了所有空间,包括标准空格键:

var str = "Hello this is a test  of the site"; 
str= str.replace(/[ \u00A0\u1680​\u180e\u2000-\u2009\u200a​\u200b​\u202f\u205f​\u3000]/g,'')

结果 - Hellothisistestofthesite

我只想删除字符串中'test'和'of'之间的unicode字符U+2003。

4

4 回答 4

14

删除模式中第一个具有的常规空间:

 str = str.replace(/[\u00A0\u1680​\u180e\u2000-\u2009\u200a​\u200b​\u202f\u205f​\u3000]/g,'');
于 2013-05-07T10:21:18.860 回答
4

尝试这个:

var str = "Hello this is a test  of the site";
str= str.replace(/[\u00A0\u1680​\u180e\u2000-\u2009\u200a​\u200b​\u202f\u205f​\u3000]/g,'')

和你一样,但没有''(常规空格)

于 2013-05-07T10:21:53.633 回答
1

我认为你可以简化,试试这个:

str = str.replace(/(?! )\s/g,'');

演示:http: //jsbin.com/acexun/2/edit

于 2013-05-07T10:21:57.303 回答
0

我猜你应该对空格使用转义序列(规范的 15.10.2.12),即 \s,并且你想用一个空格替换多个空格:

str= str.replace(/\s+/g,' ') ;
于 2013-11-20T09:50:59.263 回答