-
[js]RegExp
Ciao a tutti, qualcuno mi sa spiegare cosa fa di preciso questa porzione di codice
che tipo di controlli fa sul testo inviato...
Codice PHP:
function CtlJs(data){
var re = new RegExp("^[\\s]*", "g");
data = data.replace(re, '');
var re = new RegExp("[\\s]*$", "g");
data = data.replace(re, '');
return data;
}
Un saluto e buone feste! :razz:
-
Rimuove gli spazi all'inizio e alla fine di una stringa.
Si comporta analogamente alla funzione trim di php.
Tuttavia, io l'avrei scritta più semplicemente così:
Codice:
function CtlJS(str) {
return str && str.replace(/^\s+|\s+$/g, "");
}
-
Ti ringrazio il migliore come sempre... ;)
p.s.
Mi postresti spiegare perchè fai cosi
Codice PHP:
return str && str.replace(/^\s+|\s+$/g, "");
perchè ritorni sia str che str.replace(/^\s+|\s+$/g, "")
-
Non vengono restituiti entrambi i valori (in Javascript non sarebbe nemmeno possibile, una funzione può restituire un singolo valore), ma il risultato dell'espressione
Codice:
str && str.replace(/^s+|s+$/g, "")
La cosa che credo ti confonda è l'operatore &&, il su comportamento è semplice: se il valore booleano del primo operando (in questo caso str) è falso, allora restituisce il primo operando, altrimenti il secondo. Questo trucco può essere utile nel caso in cui str sia undefined, null o una stringa vuota.