2011-01-31 27 views

risposta

3

È possibile utilizzare la funzione replace.

str.replace(regexp|substr, newSubstr|function) 
69

Utilizzando replace() con le espressioni regolari è il più flessibile/potente. È anche l'unico modo per sostituire globalmente ogni istanza di un modello di ricerca in JavaScript. La variante non regex di replace() sostituirà solo la prima istanza.

Ad esempio:

var str = "foo gar gaz"; 

// returns: "foo bar gaz" 
str.replace('g', 'b'); 

// returns: "foo bar baz" 
str = str.replace(/g/gi, 'b'); 

In quest'ultimo esempio, il trailing /gi indica caso-insensibilità e sostituzione globale (nel senso che non solo la prima istanza dovrebbe essere sostituito), che è quello che in genere si vuole quando si stai sostituendo nelle stringhe.

Per rimuovere caratteri, utilizzare una stringa vuota come la sostituzione:

var str = "foo bar baz"; 

// returns: "foo r z" 
str.replace(/ba/gi, ''); 
+1

Buona risposta. A proposito, 'str.replace ('g', 'b');' non funziona da solo. Usando 'str = str.replace ('g', 'b');' renderebbe la risposta migliore. – Yuci

3

So che questo è vecchio, ma se si fa una scissione quindi unire rimuoverà tutte le occorrenze di un carattere particolare e cioè:

var str = theText.split('A').join('') 

rimuoverà tutte le occorrenze di 'A' dalla stringa, ovviamente, non è tra maiuscole e minuscole

+1

Questa non è una funzione sul posto, quindi devi fare 'theText = theText.split ('A'). Join ('')' perché funzioni. Questo comando è particolarmente utile per caratteri dispari come parentesi. – cameronroytaylor

+0

Aggiornato alla luce del tuo commento – atamata

14

Oneliner che rimuove i caratteri LIST (più di uno alla volta) - per esempio rimuovere +,-, ,(,) dal numero di telefono:

var str = "+(48) 123-456-789".replace(/[-+()\s]/g, ''); // result: "48123456789" 

Usiamo un'espressione regolare [-+()\s] dove abbiamo messo caratteri indesiderati tra [ e ]

(la "\s" è carattere "spazio" escape - per ulteriori informazioni google "caratteri escape in in regexp")

2

Un altro metodo di cui nessuno ha parlato finora è il metodo substr per produrre stringhe da un'altra stringa ... questo è utile se la tua stringa ha una lunghezza definita e i caratteri che la tua rimozione si trova su entrambe le estremità della stringa ... o all'interno di qualche "dimensione statica" della stringa.

Problemi correlati