2012-06-14 17 views
5

Jak mogę zezwolić na spacje w ramach sprawdzania tylko liczb, z minimum 8 cyframi? Numery telefonów są znacznie łatwiejsze do wprowadzenia, gdy spacje są dozwolone. na przykład 0400 123 456, 9699 1234.Sprawdzanie poprawności numeru telefonu jQuery dozwolone spacje, minimum 8 cyfr

Oto mój kod do tej pory mam tylko minimalną 8 cyfr pracy walidacji:

jQuery.validator.addMethod(
    "phone", 
    function(phone_number, element) { 
    return this.optional(element) || /^\d{8}$/.test(phone_number); 
    }, 
    "Please enter numbers only" 
); 
+0

Cześć, uznał ten post w poszukiwaniu odpowiedzi na podobne pytanie. Nigdy nie używałeś metody addMethod do utworzenia niestandardowej reguły sprawdzania poprawności, gdzie w przepływie dokumentów określasz niestandardową regułę? A jak to nazwać z sekcji reguł funkcji sprawdzania poprawności? – Barbs

Odpowiedz

4

Usuń przestrzeń przed walidacji:

return this.optional(element) || /^\d{8,}$/.test(phone_number.replace(/\s/g, '')); 

W ten sposób można zachować przestrzeń

+0

Dziękuję, że działa, ale chcę mieć co najmniej 8 numerów, niektóre numery telefonów będą miały 10 cyfr. Jak mogę się upewnić, że liczba cyfr jest większa niż 8? – JV10

+0

@ JV10 po prostu dodaj przecinek po '8' wewnątrz nawiasów klamrowych :), edytowałem moją odpowiedź na twój komentarz –

1

Moja propozycja jest przed walidacji po prostu usunąć spacje z phone_number.

jQuery.validator.addMethod(
    "phone", 
    function(phone_number, element) { 
    return this.optional(element) || /^\d{8}$/ *$/.test(phone_number.replace(/\s/g, "")); 
    }, 
    "Please enter numbers only" 
); 
+1

Wolę zachować odstępy, ponieważ po przesłaniu formularza odbiorca łatwiej będzie je odczytać. – JV10

+0

Zaktualizowałem na twój komentarz. –

Powiązane problemy