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.
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);
ou encore mieux
var s="jdjsghd0182.99";
var str = parseFloat(s.replace(/[^0-9 | ^.]/g, ''));
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);