Volevo scrivere un'espressione regolare per contare il numero di spazi/tabulazioni/nuova riga in un blocco di testo. Così ho ingenuamente scritto quanto segue: -Contare il numero di corrispondenze di una regex in Javascript
numSpaces : function(text) {
return text.match(/\s/).length;
}
Per alcune ragioni sconosciute si ritorna sempre 1
. Qual è il problema con la dichiarazione di cui sopra? Da allora ho risolto il problema con il seguente: -
numSpaces : function(text) {
return (text.split(/\s/).length -1);
}
Questo funziona fino a quando si dispone di almeno uno spazio nel vostro ingresso. In caso contrario, match() restituisce fastidiosamente null. – sfink
sfink ha ragione, devi assolutamente verificare se match() ha restituito null: 'var result = text.match (/ \ s/g); ritorno risultato? result.length: 0; ' –
Puoi anche proteggere dal null usando questa costruzione:' (str.match (...) || []) .length' –