Zastąp wszystkie białe znaki


Odpowiedzi:


315

Chcesz \s

Dopasowuje pojedynczy znak odstępu, w tym spację, tabulator, wysuw strony, wysunięcie wiersza.

Równoważny

[ \f\n\r\t\v\u00a0\u1680\u2000-\u200a\u2028\u2029\u202f\u205f\u3000\ufeff]

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


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

41
+1 za pamiętanie o pokazaniu, że replacefunkcja nie modyfikuje str, więc musisz ją przypisać z powrotem.
FishBasketGordo

1
W funkcji możesz zwrócić str.replace, więc nie musisz przypisywać jej w tym zakresie.
Steve K

Pamiętaj, aby użyć R perl = TRUE, jakgsub(pattern = "[\\s]+", ..., perl = TRUE)
MS Berends

30

\sto znak meta, który obejmuje wszystkie białe znaki. Nie musisz robić tego bez rozróżniania wielkości liter - białe znaki nie mają wielkości liter.

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

19

Możemy również użyć tego, jeśli chcemy zmienić wszystkie wiele połączonych spacji za pomocą jednego znaku:

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

Zobacz to w akcji tutaj: https://regex101.com/r/d9d53G/1

Wyjaśnienie

/ \s+/ g

  • \s+dopasowuje dowolny biały znak (równy [\r\n\t\f\v ])
  • + Kwantyfikator - dopasowuje od jednego do nieograniczonej liczby razy, tyle razy, ile to możliwe, dając w razie potrzeby (chciwy)

  • Globalne flagi wzorców
    • modyfikator g: g lobal. Wszystkie mecze (nie wracaj po pierwszym meczu)


4

Jeśli użyjesz

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

zastępuje wszystkie białe spacje. Na przykład:

var str = "hello my world";
str.replace(/\s/g, "") //the result will be "hellomyworld"

4

Spróbuj tego:

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

To nie działa. \s\n\tdopasowania: dowolny biały znak, po którym następuje nowa linia i tabulacja.
Daniel Cassidy

3

Nie / gi, ale / g

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

daje

"My_Family_File.jpg"

1

Właściwie to się udało, ale

po prostu spróbuj tego.

weź wartość / \ s / g do zmiennej łańcuchowej, takiej jak

String a = /\s/g;

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

skąd masz replaceAllod?
Ionel Lupu

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.