Задать вопрос
@l55uiz

Почему не работает регулярка?

Привет всем.
Использую Jquery Validation Form - https://jqueryvalidation.org
Пишу, значит, правило
rules:
    {
      userPhone: {
        pattern: '^(\s*)?(\+)?([- _():=+]?\d[- _():=+]?){8,14}(\s*)?$', 
      },
    },
    messages:
    {
      userPhone: "Введите верный телефон!",
    },

А оно мне выбиваем ошибку
Хотя регулярка работает на сайте
https://regex101.com/r/XxN13N/2

Подскажите, как исправить ошибку?
  • Вопрос задан
  • 159 просмотров
Подписаться 1 Оценить Комментировать
Решения вопроса 1
@game802
Для начала, нам нужно почитать документацию и убедится в том, что все работает правильно...
Попробуйте написать форму с помощью такого решения:
HTML:
<form id="myForm">
    <input id='experience' name="experience" value=""/>
    <input type="submit" value="Go"/>
</form>

JS:
$(function() {
   $.validator.addMethod("regex", function(value, element, regexpr) {          
     return regexpr.test(value);
   }, "Пожалуйста, введите верное значение");    
    
   $("#myForm").validate({
       rules: {
           experience: {
               required: true,
               regex: /^(\s*)?(\+)?([- _():=+]?\d[- _():=+]?){8,14}(\s*)?$/
           }
       }
   });
});


И нужно не забывать ставить / в начале и в конце регулярного выражения. Т.е. должно получатся вот так:
regex: '/^(\s*)?(\+)?([- _():=+]?\d[- _():=+]?){8,14}(\s*)?$/',
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@Snewer
pattern: '/^(\s*)?(\+)?([- _():=+]?\d[- _():=+]?){8,14}(\s*)?$/'
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы