2011-06-28 42 views
87

Chcę zastąpić wszystkie wystąpienia znaków spacji (spacja, tabulacja, znak nowej linii) w kodzie JavaScript.
Jak to zrobić?Zastąp wszystkie znaki odstępu.

Próbowałem:

str.replace(/ /gi, "X") 
+1

http://www.regular-expressions.info/ –

+1

Co to jest "X" i dlaczego? –

+0

Co ze string.replace ("," X "); –

Odpowiedz

200

Chcesz \s

zestawienia pojedynczy biały przestrzeń charakter, w tym miejsca, zakładki, formy pasz, pasz linii.

Odpowiednik

[ \f\n\r\t\v​\u00A0\u1680​\u180e\u2000​\u2001\u2002​\u2003\u2004​\u2005\u2006​\u2007\u2008​\u2009\u200a​\u2028\u2029​\u2028\u2029​\u202f\u205f​\u3000] 

w Firefox i [ \f\n\r\t\v] w IE.


str = str.replace(/\s/g, "X"); 
+31

+1 dla przypomnienia, aby pokazać, że funkcja 'replace' nie modyfikuje' str', więc musisz ją przypisać z powrotem. – FishBasketGordo

+18

nie możesz dać +1 za to ... – Juan

+0

W funkcji możesz zwrócić str.zamień, więc nie musisz przypisywać w tym zakresie. – nottinhill

19

\s jest meta znak, który obejmuje wszystkie spacje. Nie trzeba rozróżniać wielkości liter - białe znaki nie mają wielkości liter.

str.replace(/\s/g, "X") 
3

Spróbuj tego:

str.replace(/\s/gi, "X") 
+0

To nie działa. Dopasowanie "\ s \ n \ t": dowolny znak odstępu, następnie znak nowej linii, a następnie tabulator. –

+0

Popełniłem błąd, poprawiłem go. – Headshota

+0

co to jest 'i' po' g'? – M98

7

Czy próbował \s?

str.replace(/\s/g, "X"); 
1

Właściwie to został opracowany ale

prostu spróbować.

przyjąć wartość/\ s/g do zmiennej łańcuchowej jak

String a = /\s/g; 

str = str.replaceAll(a,"X"); 
6

Możemy również użyć tego, jeśli chcemy zmienić wszystkie wielokrotność dołączył puste przestrzenie z pojedynczego znaku:

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

Not/gi ale/g

var fname = "My Family File.jpg" 
fname = fname.replace(/ /g,"_"); 
console.log(fname); 

daje

"My_Family_File.jpg" 
Powiązane problemy