Rimuovi TUTTI gli spazi bianchi dal testo


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

Questo è un frammento del mio codice. Voglio aggiungere una classe a un ID dopo aver ottenuto la proprietà del testo di un altro ID. Il problema è che l'ID che contiene il testo di cui ho bisogno contiene spazi vuoti tra le lettere.

Vorrei rimuovere gli spazi bianchi. Ho provato TRIM()e REPLACE()questo funziona solo parzialmente. L' REPLACE()unico rimuove il 1o spazio.

Risposte:


1349

Devi dire sostituire () per ripetere il regex:

.replace(/ /g,'')

Il carattere g significa ripetere la ricerca attraverso l'intera stringa. Leggi qui e altri modificatori RegEx disponibili in JavaScript qui .

Se vuoi abbinare tutti gli spazi bianchi, e non solo il carattere letterale dello spazio, usa \sinvece:

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

30
Coffeescript si lamenterà di quella regex per qualche terribile ragione di Dio. Invece ho dovuto andare avanti e usare ciò .replace(/\s+/g, '')che mi va benissimo.
Dan Bradbury,

7
Se si desidera implementare qualcosa come il metodo string.strip di ruby, che restituisce restituisce una copia della stringa con spazi bianchi iniziali e finali rimossi, questo dovrebbe funzionare: x = " Many spaces before and after " y = x.replace(/(^\s+|\s+$)/g, "") gli ^\sspazi bianchi dopo l'inizio della stringa, \s$significa spazi bianchi alla fine del stringa, |è per / o nel nel gruppo e il gmodificatore è spiegato nei commenti sopra. È inoltre necessario +disporre di quantificatori dopo ognuno \sper catturare una o più istanze di spazi bianchi.
Garrett Simpson,

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

Sostituirà solo il primo spazio bianco , inclusi spazi, tabulazioni e nuove linee.

Per sostituire tutti gli spazi bianchi nella stringa è necessario utilizzare la modalità globale

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

11
Il primo non rimuove tutti gli spazi bianchi (rimuove solo il primo gruppo di spazio / nuova riga / scheda), il secondo è OK. demo: regex101.com/r/wX8rF2/3

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

@mynameistechno The +non aggiunge nulla poiché stiamo già utilizzando il gmodificatore (globale)
d4nyll

la prima riga non funzionava in quanto non rimuoveva gli spazi finali dal testo
UKDataGeek,

@ d4nyll Potrebbe renderlo più efficiente.
Solomon Ucko

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.