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

Почему не работают регулярные выражения в AjaxForm?

Здравствуйте! Такая проблема.

Скликивают рекламу, переходя по ней, и заполняя в форме обратной связи "Заказатьз вонок" несуществующие номера.

В начале я сделал ограничения в форме: чтобы отправка разрешалась только если в п оле "Номер" будет 17 символов (сам российский номер и разные пробелы и скобки).

Спама стало меньше. Но он не перестал приходить. Спамер теперь вводит все 11 цифр российского номера, но ставит после +7 цифры, которые в России не используются.

В РФ после цифры +7 могут идти цифры: 9, 4, 8, 3. Спамер же вводит цифры: 1, 2, 5, 6, 7, 0. Т. е. телефон получается такого вида:

+7 (333) 873 45 45 (недействительный)

Видимо не хочет спамить существующими номерами, чтобы избежать лишних проблем.

Я пытался исправить ситуацию с помощью регулярок.

Вот моя форма:

[[!AjaxForm?
&form=`tpl.AjaxForm-modphone`
&snippet=`FormIt`
&hooks=`validate,modB24CRM,rcv3,email,`
&modB24CRMHook=`form-modphone2`
&emailSubject=`Заказ звонка с сайта`
&emailTo=`[[++all_email]]`
&emailFrom=`info@pochta.ru`
&emailTpl=`contaktTpl-modphone`
&validate=`tel:required:minLength=^17^`
&validationErrorMessage=`В форме содержатся ошибки!`
&successMessage=`Спасибо, ваша заявка принята.`
]]

Я пытался к элементу: &validate=`tel:required:minLength=^17^` добавитьследующие регулярные выражения:

&validate=`tel:required:minLength=^17^:regexp=^\+7\s*\(?[3489]`

&validate=`tel:required:minLength=^17^:regexp=^\+7\s\(([3489])\d{2}\)`

&validate=`tel:required:minLength=^17^:regexp=^\+7\s\(([3489])\d{2}\)\s\d{3}\s\d{4}$`

К сожалению, форма вообще не отправляется?

Подскажите, пожалуйста, как решить проблему.
  • Вопрос задан
  • 371 просмотр
Подписаться 2 Простой Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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