Regex de validation pour les nombres avec virgule de séparation
Besoin d'une expression régulière pour valider le numéro avec la virgule comme séparateur.
1,5,10,55 est valide, mais 1,,,,10 n'est pas valide.
- Comme une note de côté - une regex pouvez valider votre entrée, mais pas de l'analyser (à moins que vous
match
pour\d+
). Si votre prochaine étape est de séparer la chaîne que vous pourriez aussi bien le diviser avant de le valider. Ensuite, où est-ce que jQuery fit-il? Est-il un plugin de validation? - Oui je veux valider une chaîne à l'aide de jquery plugin de validation .
Vous devez vous connecter pour publier un commentaire.
Cela devrait le faire:
La regex est plutôt simple:
\d+
est le premier numéro de suivi en option, les virgules et les numéros de plus.Vous pouvez jeter dans
\s*
où bon vous semble, ou de supprimer tous les espaces avant validation.\d+
avec[+-]?\d+
\d+
avec[+-]?\d+(?:\.\d+)?
Voici les composants de la regex que nous allons utiliser:
\d
est le raccourci pour le chiffre de la classe de caractères+
est l'une ou la répétition spécificateur de*
est de zéro ou plus de la répétition spécificateur de(...)
effectue le regroupement^
et$
sont le début et la fin de la ligne ancres respectivementNous pouvons maintenant composer la regex nous avons besoin de:
Qui est:
Noter que le
*
signifie que d'avoir un seul numéro est autorisée. Si vous insistez sur au moins deux nombres, puis utilisez+
à la place. Vous pouvez également remplacer\d+
avec un autre modèle pour le nombre pour permettre par exemple à signer et/ou de la partie fractionnaire.Références
Sujets avancés: optimisation
Vous pouvez faire les crochets non-capture pour la performance:
Et si la saveur prend en charge, vous pouvez faire toutes les répétitions possessif dans ce cas:
Références
essayer cette
{1}
est redondant, et est la capture d'un groupe. C'est le même que\d*,\d*
- il doit avoir une seule virgule, avec en option des chiffres autour de lui; pas tout à fait la demande ici. Il accepte,
,12,34
,,34
, et rejette1
,1,2,3
.