2013-05-07 8 views
5

muszę wymienić znaki Unicode zdefiniowane na hereWymień unicode spacje

Mam to tak daleko, ale wydaje się, aby usunąć wszystkie miejsca w tym standardowych spacja:

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

Wynik - Hellothisisatestofthesite

Chcę tylko usunąć znak Unicode, który jest U + 2003 między "test" i "of" w ciągu znaków.

Odpowiedz

7

Usuń regularne miejsca, które trzeba najpierw we wzorcu:

str = str.replace(/[\u00A0\u1680​\u180e\u2000-\u2009\u200a​\u200b​\u202f\u205f​\u3000]/g,''); 
+0

+1 - Ja jeden nie widziałem, że – Bojangles

+4

@Bojangles: Spacje są jak czarne dziury; można je zobaczyć tylko poprzez to, jak wpływają na inne rzeczy, które są widoczne. :) – Guffa

+0

Bardzo dobrze. Nie zauważyłem tego w OP, ponieważ nie został on sformatowany jako kod – Bojangles

3

spróbuj tego:

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

samo jak ty, ale z out '' (regularne spacja)

-1

Chyba należy użyć sekwencji ucieczki dla przestrzeni (15.10.2.12 od normy), który jest \ s, a chcesz zastąpić wielokrotne spacje przez jednego z nich:

str= str.replace(/\s+/g,' ') ; 
+0

Unicode to nie dwie zwykłe spacje. – silver