2014-12-30 1 views
11

Я использую проверку подлинности jquery, где я добавил метод для проверки строки, которая допускает только числа, пробелы, плюс знак, дефис и скобки. Номер является обязательным в строке, но другой фрахтователь не является обязательным.Регулярное выражение, которое позволяет числа, пробелы, плюс знак, дефис и скобки

Мой код для добавления метода в 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." 
); 

следующий код для правил:

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

Используйте программу регулярного выражения тестер, чтобы помочь вам играть с и протестировать различные входы: http://regexpal.com/ –

+0

Простой поиск «синтаксиса регулярных выражений» должен предоставить вам знания, необходимые для разумного создания и отладки. –

ответ

28

Вы можете добавить необходимые символы в классе символов, как

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

Regex Demo

Regex Объяснение

  • (?=.*[0-9]) Postive взгляд вперед. Гарантирует, что есть по крайней мере одна цифра

  • [- +()0-9]+ спички числа, пробелы, знак плюс, дефис и скобки

ИЛИ

Если вы не склонны при помощи выглядеть aheads. Вы могли бы написать без них lenghier регулярное выражение, как

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

Без lookahead: '/^[- +()] * [0-9] [- +() 0-9] * /' – Brainstorm

+0

@Brainstorm Это хорошая заметка – nu11p01n73R

+1

Great Thanks "/^[- +() ] * [0-9] [- +() 0-9] * $/"он решает мою проблему. –

Смежные вопросы