2010-10-29 4 views
20

J'essaie de remplacer tous les points trouvés dans une valeur entrée par l'utilisateur dans un formulaire HTML. Par exemple, j'ai besoin que l'entrée '8.30' soit convertie en '8x30'.Remplacer tous les points dans un nombre

Je possède ce code simple:

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

Mais il ne fonctionne pas. En utilisant la commande console.log dans Firebug, je peux voir que la commande replace ne se produit tout simplement pas. '8.30' reste le même.

J'ai aussi essayé le regexp suivant sans meilleur résultat:

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

ce que je fais mal ici?

+0

value.replace (/\./ g, 'x'); est correct et son travail pour moi [j'ai vérifié dans la console de firbug e.g. "2312.88.12.1232" .réplace (/\./g, 'x'); –

+0

@Chinmayee: ouais ça marche en effet. Comme l'a souligné Bart Kiers (ci-dessous), j'ai juste oublié qu'il ne mettrait pas automatiquement à jour la valeur de ma variable. – s427

Répondre

38

replace renvoie une chaîne. Essayez:

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

C'était trop évident. ;) Merci beaucoup. :) – s427

+0

@ s427, de rien! :) –

3

Vous avez trois solutions:

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

Questions connexes