2009-06-27 14 views
16

Używam wtyczki sprawdzania poprawności jQuery od: http://bassistance.de/jquery-plugins/jquery-plugin-validation/za pomocą wtyczki sprawdzania poprawności jquery, w jaki sposób dodać sprawdzanie poprawności do wyrażenia regularnego w polu tekstowym?

Jak mogę dodać sprawdzanie regex do konkretnego pola tekstowego?

Chcę sprawdzić, czy dane wejściowe są alfanumeryczne.

+0

Istnieje wiele dodatkowych metod wtyczek tutaj http://bassistance.de/jquery-plugins/jquery-plugin-validation/ – dstonek

Odpowiedz

35

zdefiniować nową funkcję sprawdzania i używać go w zasadach dziedzinie chcesz sprawdzić poprawność:

$(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

Uwaga: metoda addmethod nie musi iść do document.ready, może również załadować ją natychmiast, aby zwolnić dokument.w przypadku rzeczy, które muszą tam być. – Alistair

+0

+1 działał jak czar! –

+0

Co należy zmienić, aby wyświetlić konkretny komunikat o błędzie, jeśli wartość nie jest alfanumeryczna, a inna, jeśli nie ma między długością min./maks.? – Cofey

7

Nie zna pluginu walidacji jQuery, ale coś takiego powinno wystarczyć:

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: Dzięki za eleganckie rozwiązanie. Drobne, że brakuje ci jednego ")" przed "{". – Arman

Powiązane problemy