2012-10-04 21 views

risposta

28

Citazione di the doc:

Per eseguire una ricerca globale e sostituire, né includono l'interruttore g nel l'espressione regolare o se il primo parametro è una stringa , includere g nel parametro flags. Nota: L'argomento flags non funziona in v8 Core (Chrome e Node.js) e verrà rimosso da Firefox.

quindi dovrebbe essere:

"11.111.11".replace(/\./g, ''); 

Questa versione (al momento della modifica) funziona in Firefox ...

"11.111.11".replace('.', '', 'g'); 

... ma, come notato nella pagina molto MDN, il suo supporto sarà presto abbandonato.

+8

Il parametro "bandiere" nel tuo primo esempio è non -standard e non funzionerà in Chrome o IE. – jvenema

+0

@jvenema Grazie, ho aggiornato la risposta menzionandola. In realtà non ho mai usato le stringhe nel primo parametro '.replace' quando avevo bisogno di una sostituzione globale, quindi ero un po 'sorpreso nel vedere che è ancora possibile fare a meno dei modificatori di espressioni regolari.) – raina77ow

+0

Grazie, questo funziona ... Questo è il codice più involontario che abbia mai visto in tutta la mia carriera: D – SeToY

7

Con un'espressione regolare e bandiera g aver ottenuto il risultato atteso

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

importante usare un'espressione regolare perché questo:

"11.111.11".replace('.', '', 'g'); // dont' use it!! 

is not standard

1

Prima di tutto, sostituire () è una funzione javascript e non una funzione jquery.

Il codice precedente sostituisce solo la prima occorrenza di "." (non ogni occorrenza). Per sostituire tutte le occorrenze di una stringa in JavaScript, è necessario fornire il metodo replace() un'espressione regolare con un modificatore globale come primo parametro, in questo modo:

"11.111.11".replace(/\./g,'') 
Problemi correlati