2011-04-20 14 views
13

Piszę niestandardową metodę dla plugin jQuery:Jak sprawdzić znaków alfanumerycznych

jQuery.validator.addMethod("alphanumeric", function(value, element) { 
     return this.optional(element) || (/*contains "^[a-zA-Z0-9]*$"*/); 
}); 

Znam regexp za to, co chcę, ale nie jestem pewien, w jaki sposób napisać coś w JS, które przetworzy wartość True, jeśli zawiera znaki alfanumeryczne. Jakaś pomoc?

+0

Jeśli zmienisz swoje pytanie, napisz "EDYTUJ" i opisz, co zmieniłeś w swoim pytaniu. – nk9

Odpowiedz

37

Zobacz metodę RegExp pod numerem test.

jQuery.validator.addMethod("alphanumeric", function(value, element) { 
     return this.optional(element) || /^[a-zA-Z0-9]+$/.test(value); 
}); 
+2

świetna odpowiedź. Sugerowałbym użycie wyrażenia "+" w wyrażeniu regularnym zamiast "*", w przeciwnym razie pusty ciąg będzie zgodny z – Cfreak

+0

Zgadzam się, ponieważ opcjonalne obsłużyłoby pusty ciąg. –

+0

To jest prawie dokładnie to, czego chcę. Jeśli wprowadzę "qwertyuiop", to będzie to prawda. Ale chciałbym również wprowadzić 'qwerty uiop' (z spacją) i nadal jest to prawdą. Po prostu nie chcę całkowicie pustego wejścia, nawet jeśli ilość pustych pól przekracza minimalną długość. Jak mogę to zrobić? – AKor

3

Można użyć regexes w JavaScript:

if(yourstring.match(/^[a-zA-Z0-9]+/)) { 
    return true 
} 

Zauważ, że użyłem + zamiast *. Z * to return true jeśli ciąg był pusty

0
$("input:text").filter(function() { 
    return this.value.match(/^[a-zA-Z0-9]+/); 
}) 
4
// use below ... It is better parvez abobjects.com 
jQuery.validator.addMethod("postalcode", function(postalcode, element) { 
    if(this.optional(element) || /^[a-zA-Z\u00C0-\u00ff]+$/.test(postalcode)){ 
     return false; 
    }else{ 
     return this.optional(element) || /^[a-zA-Z0-9]+/.test(postalcode); 
    } 

}, "<br>Invalid zip code"); 



rules:{ 
    ccZip:{   
      postalcode : true 
     }, 
     phone:{required: true}, 

This will validate zip code having no letters but alphanumeric 
7

Jeśli chcesz korzystać z hiszpańskich znaków w walidacji alfanumerycznej można użyć to:

jQuery.validator.addMethod("alphanumeric", function(value, element) { 
    return this.optional(element) || /^[a-zA-Z0-9áéíóúÁÉÍÓÚÑñ ]+$/.test(value); 
}); 

ja również dodaje spację aby umożliwić użytkownikom dodawanie słów

+0

Jeśli chcesz użyć większej liczby języków, możesz dodać znaki francuskie i niemieckie, ale wyrażenie regularne może być znacznie "ciężkie". Po prostu użyj znaków, które naprawdę chcesz ocenić – OtakuPahp

Powiązane problemy