2009-06-27 9 views
16

J'utilise le plugin de validation jquery depuis: http://bassistance.de/jquery-plugins/jquery-plugin-validation/en utilisant le plugin jquery validation, comment puis-je ajouter une validation regex sur une zone de texte?

Comment puis-je ajouter une vérification d'expression régulière sur une zone de texte particulière?

Je souhaite vérifier que l'entrée est alphanumérique.

+0

Il ya beaucoup de méthodes supplémentaires plugins ici http://bassistance.de/jquery-plugins/jquery-plugin-validation/ – dstonek

Répondre

35

Définir une nouvelle fonction de validation, et l'utiliser dans les règles pour le champ que vous souhaitez valider:

$(function() 
{ 
    $.validator.addMethod("loginRegex", function(value, element) { 
     return this.optional(element) || /^[a-z0-9\-]+$/i.test(value); 
    }, "Username must contain only letters, numbers, or dashes."); 

    $("#signupForm").validate({ 
     rules: { 
      "login": { 
       required: true, 
       loginRegex: true, 
      } 
     }, 
     messages: { 
      "login": { 
       required: "You must enter a login name", 
       loginRegex: "Login format not valid" 
      } 
     } 
    }); 
}); 
+0

Note: le addmethod n'a pas besoin d'aller dans document.ready, peut aussi bien le charger immédiatement pour libérer document.ready pour les choses qui doivent y aller. – Alistair

+0

+1 a travaillé comme un charme! –

+0

Que faudrait-il changer pour afficher un message d'erreur spécifique si la valeur n'est pas alphanumérique et une autre si elle n'est pas comprise entre la longueur min/max? – Cofey

7

Vous n'êtes pas familier avec le plugin de validation jQuery, mais quelque chose comme ça devrait faire l'affaire:

var alNumRegex = /^([a-zA-Z0-9]+)$/; //only letters and numbers 
if(alNumRegex.test($('#myTextbox').val())) { 
    alert("value of myTextbox is an alphanumeric string"); 
} 
+1

@ karmin79: Merci pour la solution élégante. Juste chose mineure il vous manque un ")" avant "{". – Arman

Questions connexes