257 votes

jQuery validation : Comment faire pour ajouter une règle de validation d’expression régulière ?

J’utilise le plugin de jQuery validation. Trucs formidables ! Je veux migrer ma solution ASP.NET existante pour utiliser jQuery au lieu des validateurs ASP.NET. Il me manque un remplacement pour le validateur d’expression régulière . Je veux être capable de faire quelque chose comme ceci :

Comment faire pour Ajouter une règle personnalisée pour y parvenir ?

357voto

PeterFromCologne Points 4043

Grâce à la réponse de redsquare j'ai ajouté une méthode comme ceci:

$.validator.addMethod(
        "regex",
        function(value, element, regexp) {
            var re = new RegExp(regexp);
            return this.optional(element) || re.test(value);
        },
        "Please check your input."
);

maintenant, tout ce que vous devez faire pour valider l'encontre de tout regex est ceci:

$("#Textbox").rules("add", { regex: "^[a-zA-Z'.\\s]{1,40}$" })

En outre, il semble comme il y a un fichier appelé additional-methods.js qui contient la méthode du "motif", qui peut être une expression régulière lorsqu'ils sont créés à l'aide de la méthode sans les guillemets.

http://bassistance.de/jquery-plugins/jquery-plugin-validation/

http://ajax.aspnetcdn.com/ajax/jquery.validate/1.9/additional-methods.js

85voto

redsquare Points 47518

45voto

bshack Points 779

J’ai eu quelques difficultés à rassembler toutes les pièces pour faire un validateur d’expression régulière de jQuery, mais j’ai réussi au faire fonctionner... Voici un exemple de travail complet. Il utilise le plugin « Validation » qui se trouve dans Validation Plugin jQuery

28voto

Sam Points 151

Aucune raison de définir l’expression régulière sous forme de chaîne.

et

C’est mieux de cette façon, non ?

19voto

Jörn Zaefferer Points 3798

Comme mentionné sur le addMethod de la documentation:

Veuillez noter: bien que la tentation est grande d'ajouter une regex méthode qui vérifie que c'est le paramètre par rapport à la valeur, il est beaucoup plus propre pour encapsuler ces expressions régulières à l'intérieur de leur propre méthode. Si vous avez besoin de beaucoup de légèrement différent, les expressions, essayer d'extraire un paramètre commun. Une bibliothèque d'expressions régulières: http://regexlib.com/DisplayPatterns.aspx

Si oui, vous devez ajouter une méthode pour chaque expression régulière. La surcharge est minime, alors qu'il permet de donner les regex un nom (à ne pas sous-estimer), un message par défaut (très pratique) et la possibilité de réutiliser un des endroits différents, sans dupliquer les regex lui-même.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X