web-dev-qa-db-fra.com

Virgules jouant avec la saisie de nombres en Javascript

J'ai une page avec des éléments contrôlés par l'utilisateur. L'un d'eux est un champ de saisie de texte, où l'utilisateur est censé saisir un nombre. Tout fonctionne bien si l'utilisateur n'entre que des chiffres (EG 9000), mais s'il utilise la notation virgule (l'être 9 000) javascript ne prend pas l'entrée comme un entier.

Comment puis-je supprimer les virgules et/ou forcer l'entrée à un entier? J'ai essayé d'utiliser parseint (), mais cela ne semble pas fonctionner avec des virgules.

29
MrGlass

Utilisez une expression régulière globale pour remplacer tous les virgules par une chaîne vide:

var str = "12,345,678";
str = str.replace(/,/g, "");
parseInt(str, 10);
55
adelphus

ou encore mieux

var s="jdjsghd0182.99";
var str = parseFloat(s.replace(/[^0-9 | ^.]/g, ''));
4
Venkat Reddy

Ou encore mieux, étant donné le manque de fiabilité général des entrées utilisateur, utilisez-le pour vous débarrasser de tous les caractères non numériques:


var s = "9,Ljk876";
var t = parseInt(s.replace(/[^0-9]/g, ''));
alert ("s:" + s + ", t:" + t);
2
blankabout