2010-10-29 22 views
20

Sto cercando di sostituire tutti i punti trovati in un valore inserito dall'utente in un modulo HTML. Per esempio ho bisogno che la voce '8.30' sia convertita in '8x30'.Sostituisci tutti i punti in un numero

ho questo semplice codice:

var value = $(this).val().trim(); // get the value from the form 
value += ''; // force value to string 
value.replace('.', 'x'); 

Ma non funziona. Usando il comando console.log in Firebug, posso vedere che il comando replace semplicemente non si verifica. '8.30' rimane lo stesso.

Ho anche provato la seguente espressione regolare senza alcun risultato migliore:

value.replace(/\./g, 'x'); 

che cosa sto facendo male qui?

+0

value.replace (/\./ g, 'x'); è corretto e funziona per me [ho controllato in console firbug, ad es. "2312.88.12.1232" .replace (/\./g, 'x'); –

+0

@Chinmayee: sì, funziona davvero. Come sottolineato da Bart Kiers (sotto), ho appena dimenticato che non aggiornerebbe automaticamente il valore nella mia variabile. – s427

risposta

38

replace restituisce una stringa. Prova:

value = value.replace('.', 'x'); // 
            // or 
value = value.replace(/\./g, 'x'); // replaces all '.' 
+0

Era troppo ovvio. ;) Grazie mille. :) – s427

+0

@ s427, prego! :) –

3

Hai tre soluzioni:

var text= "ABC.DEF.XYZ"; 
response = text.replace(/\./g,'x'); 


var text= "ABC.DEF.XYZ"; 
response = text.replace(new RegExp("\\.","gm"),"x"); 


var text= "ABC.DEF.XYZ"; 
response = text.split('.').join('x'); 

DEMO in JSFIDDLE

Problemi correlati