Chcę zamienić wszystkie wystąpienia białych znaków (spacja, tabulacja, nowa linia) w JavaScript.
Jak to zrobić?
Próbowałem:
str.replace(/ /gi, "X")
Chcę zamienić wszystkie wystąpienia białych znaków (spacja, tabulacja, nowa linia) w JavaScript.
Jak to zrobić?
Próbowałem:
str.replace(/ /gi, "X")
Odpowiedzi:
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");
replace
funkcja nie modyfikuje str
, więc musisz ją przypisać z powrotem.
perl = TRUE
, jakgsub(pattern = "[\\s]+", ..., perl = TRUE)
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)
Czy próbowałeś \s
?
str.replace(/\s/g, "X");
Spróbuj tego:
str.replace(/\s/g, "X")
\s\n\t
dopasowania: dowolny biały znak, po którym następuje nowa linia i tabulacja.
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");
replaceAll
od?
Użyłem metody „slugify” z underscore.string i zadziałała jak urok:
https://github.com/epeli/underscore.string#slugifystring--string
Fajne jest to, że naprawdę możesz po prostu zaimportować tę metodę, nie musisz importować całej biblioteki.