2010-10-29 18 views
20

Estoy tratando de reemplazar todos los puntos encontrados en un valor introducido por el usuario en un formulario HTML. Por ejemplo, necesito que la entrada '8.30' se convierta a '8x30'.Reemplazar todos los puntos en un número

que tienen este código simple:

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

Pero no funciona. Usando el comando console.log en Firebug, puedo ver que el comando de reemplazo simplemente no ocurre. '8.30' sigue siendo el mismo.

También probé la siguiente expresión regular con el mejor resultado:

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

¿qué estoy haciendo mal aquí?

+0

value.replace (/\./ g, 'x'); es correcto y funciona para mí [lo he comprobado en la consola de firbug, p. "2312.88.12.1232" .replace (/\./ g, 'x'); –

+0

@Chinmayee: sí funciona de verdad. Como señaló Bart Kiers (abajo), simplemente olvidé que no actualizaría automáticamente el valor en mi variable. – s427

Respuesta

38

replace devuelve una cadena. Proveedores:

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

Eso era demasiado obvio. ;) Muchas gracias. :) – s427

+0

@ s427, de nada! :) –

3

Tiene tres soluciones:

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

Cuestiones relacionadas