J'ai une boîte de texte, elle peut avoir des valeurs comme 1 ou 1,2 ou 1,225,345,21, c'est-à-dire des valeurs multiples. Mais maintenant, je souhaite valider cette entrée.
toString().match(/^(([0-9](,)?)*)+$/)
C'est le code que j'utilise. Il ne valide que correctement, mais un problème lorsque l'utilisateur saisit des valeurs comme ceci:
inputval:1,22,34,25,645(true) inputval:1,22,34,25,645,(falues)
Lorsque l'utilisateur entre une virgule (,), le dernier devrait lancer une erreur.
Quelqu'un peut-il m'aider s'il-vous-plaît?
Il suffit d'inclure manuellement au moins un:
/^[0-9]+(,[0-9]+)*$/
Variantes sur le Regex d'Ariel 🙂
/^(([0-9]+)(,(?=[0-9]))?)+$/
Le ,
doit être suivi d'un chiffre (?=[0-9])
.
Ou
/^(([0-9]+)(,(?!$))?)+$/
Le ,
ne doit pas être suivi par la fin de la chaîne (?!$)
.
/^(?!,)(,?[0-9]+)+$/
Nous vérifions que le premier caractère n'est pas un ,
(?!,)
Et nous mettons le facultatif avant les chiffres. C'est facultatif car le premier bloc de chiffres n'a pas besoin.