Usuń WSZYSTKIE białe spacje z tekstu


587
$("#topNav" + $("#breadCrumb2nd").text().replace(" ", "")).addClass("current");

To jest fragment mojego kodu. Chcę dodać klasę do identyfikatora po uzyskaniu właściwości tekstowej innego identyfikatora. Problem polega na tym, że identyfikator zawierający tekst, którego potrzebuję, zawiera przerwy między literami.

Chciałbym usunąć białe przestrzenie. Próbowałem TRIM()i REPLACE()ale to tylko częściowo działa. REPLACE()Usuwa tylko 1st miejsca.

Odpowiedzi:


1347

Musisz powiedzieć replace (), aby powtórzyć wyrażenie regularne:

.replace(/ /g,'')

Znak g oznacza powtórzenie wyszukiwania przez cały ciąg. Przeczytaj o tym i innych modyfikatorach RegEx dostępnych w JavaScript tutaj .

Jeśli chcesz dopasować wszystkie białe znaki, a nie tylko literalny znak spacji, użyj \szamiast tego:

.replace(/\s/g,'')

30
Coffeescript narzeka na to wyrażenie regularne z jakiegoś okropnego powodu. Zamiast tego musiałem iść naprzód i używać tego, .replace(/\s+/g, '')co jest całkowicie w porządku dla mnie.
Dan Bradbury

7
Jeśli chcesz zaimplementować coś podobnego sposobu string.strip Rubiego, który powraca Zwraca kopię napisu z początkowe i końcowe spacje usunięte, to powinno działać: x = " Many spaces before and after " y = x.replace(/(^\s+|\s+$)/g, "") The ^\sśrodki spacje po początku łańcucha, \s$środków spacje na końcu ciąg, |jest dla / lub w grupie, a gmodyfikator wyjaśniono w komentarzach powyżej. Potrzebujesz także +kwantyfikatorów po każdym, \sponieważ chcesz uchwycić jedno lub więcej wystąpień białych znaków.
Garrett Simpson

298
.replace(/\s+/, "") 

Zastąpi tylko pierwszą białą spację , w tym spacje, tabulatory i nowe linie.

Aby zamienić wszystkie białe znaki w ciągu, musisz użyć trybu globalnego

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

11
Pierwszy nie usuwa wszystkich białych spacji (usuwa tylko pierwszą grupę spacji / nowej linii / tabulacji), drugi jest OK. demo: regex101.com/r/wX8rF2/3

4
.replace (/ \ s + / g, '')
mynameistechno

@mynameistechno Nic +nie dodaje, ponieważ już korzystamy z gmodyfikatora (globalnego)
d4nyll

pierwszy wiersz nie działał, ponieważ nie usuwa końcowych spacji z tekstu
UKDataGeek

@ d4nyll Może to zwiększyć wydajność.
Solomon Ucko

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.