2014-12-30 17 views
11

Używam walidatora jquery, w którym dodałem metodę sprawdzania poprawności łańcucha, który dopuszcza tylko liczby, spacje, znak plus, łącznik i nawiasy. Liczba jest obowiązkowa w ciągu, ale inny czarterujący jest opcjonalny.Wyrażenie regularne, które pozwala na liczby, spacje, znak plus, łącznik i nawiasy

Mój kod na dodanie metody w jQuery validor:

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

następujący kod dla reguł:

rules: { 
myfield: { 
    required: true, 
    regex: "[0-9]+" // want to add regular expression but I wrote only for digit which works but do not understand how to reach at my requirements. 
}, 
} 
+0

Użyj regularny program tester ekspresji, które pomogą Ci bawić się i przetestować różne wejścia: http://regexpal.com/ –

+0

Prosty wyszukiwania dla „składni wyrażeń regularnych” powinien dostarczyć ci wiedzy potrzebnej do inteligentnego tworzenia i debugowania. –

Odpowiedz

28

Możesz dodać wymagane znaki w klasie znaków jako

/^(?=.*[0-9])[- +()0-9]+$/ 

Regex Demo

Regex Wyjaśnienie

  • (?=.*[0-9]) dodatnią patrzeć w przyszłość. Zapewnia, że ​​jest conajmniej jedną cyfrę

  • [- +()0-9]+ numery tenis, spacje, znak plus, myślnik i wsporniki

LUB

Jeśli są niechętne w użyciu aheads wygląd. Można napisać bez nich regex lenghier jak

/^[- +()]*[0-9][- +()0-9]*$/ 
+3

Bez uprzedzenia: '/^[- +()] * [0-9] [- +() 0-9] * /' – Brainstorm

+0

@Brainstorm To dobra uwaga – nu11p01n73R

+1

Wielkie dzięki, "/^[- +() ] * [0-9] [- +() 0-9] * $/"to rozwiązuje mój problem. –