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")
javascript
trim
Sourav
źródło
źródło
Odpowiedzi:
Chcesz
\s
Równoważny
w Firefoksie i
[ \f\n\r\t\v]
w IE .źródło
replace
funkcja nie modyfikujestr
, więc musisz ją przypisać z powrotem.perl = TRUE
, jakgsub(pattern = "[\\s]+", ..., perl = TRUE)
\s
to 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.źródło
Możemy również użyć tego, jeśli chcemy zmienić wszystkie wiele połączonych spacji za pomocą jednego znaku:
Zobacz to w akcji tutaj: https://regex101.com/r/d9d53G/1
Wyjaśnienie
\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)źródło
Czy próbowałeś
\s
?źródło
Jeśli użyjesz
zastępuje wszystkie białe spacje. Na przykład:
źródło
Spróbuj tego:
źródło
\s\n\t
dopasowania: dowolny biały znak, po którym następuje nowa linia i tabulacja.Nie / gi, ale / g
daje
źródło
Właściwie to się udało, ale
po prostu spróbuj tego.
weź wartość / \ s / g do zmiennej łańcuchowej, takiej jak
źródło
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.
źródło