J'ai ce code, ça a l'air bien et est vraiment basique, mais je ne peux pas le faire fonctionner:
function checkValid(elem){ var abc = elem.value; var re = "/[0-9]/"; var match = re.test(abc); alert(match); }
Il correspond à 0 et 9, mais pas 1 à 8, qu'est-ce qui ne va pas ici? Merci.
Utilisez \ d pour faire correspondre un nombre et en faire une expresion régulière, pas une chaîne:
var abc = elem.value; var re = /\d/; var match = re.test(abc); alert(match);
re
est une chaîne, pas un objet RegExp.
Vous devez utiliser un littéral regex au lieu d'un littéral de chaîne, comme ceci:
var re = /[0-9]/;
En outre, cela renverra true pour toute chaîne contenant un nombre quelconque dans la chaîne.
Vous voulez probablement le changer à
var re = /^[0-9]+$/;
Essayez de supprimer les guillemets doubles …
var re = /[0-9]/;