Как изменить формат ввода телефонных номеров?
В наших решениях вы можете изменять маску телефона самостоятельно, чтобы собирать контакты посетителей в едином формате и не терять данные из-за того, что поля были заполнены некорректно.
Рассмотрим алгоритм на примере решения Аспро: Максимум. Для настройки вида маски телефона в административной части сайта перейдите в Аспро (1) → Аспро: Max (2) → Настройки (3) и выберите вкладку «Валидация ввода».

По умолчанию в Аспро: Максимум установлена маска валидации для России. Она выглядит следующим образом (поле «Маска телефона для валидации»):
^[+][0-9] [(][0-9]{3}[)] [0-9]{3}[-][0-9]{2}[-][0-9]{2}$
Значения символов:
^ — начало строки
[+] — знак плюса перед телефонным номером
[0-9] — одна любая цифра от 0 до 9 (например, +7)
{3} — задаем количество знаков внутри группы чисел. В данном случае их три, от 0 до 9 (для кода города или первых трех цифр номера мобильного оператора), а затем еще три группы — по три, две и еще раз две цифры.
$ — закрывающий символ.
Таким образом, для Беларуси маска валидации будет выглядеть так:
^[+][0-9]{3} [(][0-9]{2}[)] [0-9]{3}[-][0-9]{2}[-][0-9]{2}$
(знак плюса, затем три цифры кода государства, две цифры кода города в скобках, а затем группы из трех, двух и еще раз двух цифр).
Опираясь на принципы создания маски валидации, сформируйте свой вариант и замените его в соответствующем поле. На вкладке также можно ввести маску ввода телефона, формат даты и задать скрытую капчу. После внесения правок сохраните изменения.

Добрый день!
Запретить пользователю вводить цифры нельзя, но с помощью валидации ввода можно не дать отправить формы с некорректными данными. Для этого необходимо отключить интернациональную маску.
Установите необходимую маску номера телефона для вашего региона и впишите в строку валидации "^[+][12345690] [(][0-9]{3}[)] [0-9]{3}[-][0-9]{2}[-][0-9]{2}$". Эта валидация подходит для номеров из СНГ. Если что, мы будем на связи!
Вячеслав, здравствуйте!
Спасибо, что поделились проблемой. Пожалуйста, напишите обращение в нашу техподдержку:Специалисты помогут настроить валидацию. Будем ждать вашу заявку. До свидания!
Здравствуйте, Борис! Такова жизнь
А если серьезно, хотим уточнить, что вас беспокоит в статье?
Роман, добрый день!
Полагаем, вы хотите поставить запрет на ввод восьмерки вместо +7, чтобы не терять клиентов, которые некорректно вводят свои телефонные номера.
Отвечая на ваш вопрос: чтобы запретить ввод определенной цифры, нужно перечислить остальные доступные в квадратных скобках цифры. Например, запрет для цифры 8 будет выглядеть следующим образом: [0-7,9].
Но этот вариант непрактичен, поскольку запрет ввода восьмерки вместо +7 распространится на весь номер телефона.
В качестве альтернативы рекомендуем убрать из маски +7 и привести ее к такому виду:
9 (999) 999-99-99.
Так из номера не будут теряться цифры и вы сможете связаться с клиентами.
Если у вас появятся новые технические вопросы, пишите нам в техподдержку:Здравствуйте, Елена!
Спасибо за ваш комментарий. Понимаем, что для вас это важно. Улучшим настройки маски в обновлении.
Задачи мы реализовываем по гибкой методологии. Обновляем функционал по степени его приоритетности среди пользователей. Система приоритетности и гибкой методологии выгодна и нам, и нашим клиентам. Так как у нас много идей от пользователей, и мы в первую очередь реализуем те улучшения, за которые голосует большинство пользователей в Идейном центре
Ошибки исправляем в порядке критичности. По срокам реализации, к сожалению, подсказать не можем. Поэтому просим проявить терпение.
Улучшение зарегистрировано под номером — MAX-1735. Также есть номера еще для нескольких решений. Реализуем в одном из обновлений.
Если возникнут технические вопросы, пожалуйста, обратитесь в техподдержку
Поможем с настройками.
Клиент не видит что стоит +7 и вводит номер 8 123 456 78 90
к нам в систему приходит +7 812 345 67 89
одной последней цифры не хватает. И это большая боль. Случай не единичный.
Это решается стандартно через валидацию номера?
Здравствуйте, Алексей!
Благодарим за комментарий. Для решения вашей ситуации можно задать маску на количество символов. Пример: маску ввода заполнить так 9 (999) 999-99-99,
а валидацию ввода так ^[0-9] [(][0-9]{3}[)] [0-9]{3}[][0-9]{2}[][0-9]{2}$. Так мы опустим плюс перед номером и сохраним общий формат телефона. При таком варианте цифры не пропадут.
Если возникают технические вопросы, вы можете написать нам в поддержку
Поможем разобраться с настройками решения.
Во всех остальных значение от 0 до 9
+7 (9xx)-xxx-xxxx
Здравствуйте, Константин!
Спасибо за комментарий. Стандартным образом так сделать не получится. Может доработать функционал под ваши потребности. Если интересно, напишите на почту:Уже 2 года прошло, придумали решение для валидации телефонных номеров разных стран или нет?
Здравствуйте, Сергей!
Спасибо за комментарий. У нас зарегистрировано это пожелание. Но оно не популярно среди пользователей. Поэтому в ближайших обновлениях не будет реализовано. Можем реализовать задачу индивидуально для вашего проекта, если не хотите ждать обновления. Если интересно, пожалуйста, напишите нам на почту:
Обсудим детали.
Решается очень просто при помощи штатной формы выбора страны CJSCore::Init(['phone_number']);
Очень красиво с флажком страны и даже простенькой маски телефона.
Спасибо за комментарий. Согласны, что функционал может пригодиться пользователям, поэтому зарегистрировано пожелание под номером NEXT-794. Реализуем в одном из обновлений.
Мы понимаем, что хочется получить шаблон, который будет полностью покрывать задачи конкретной компании. И в тоже время напомним, что готовое решение призвано на 70-90% удовлетворять потребности всех клиентов.
Чтобы отслеживать наиболее востребованные запросы, мы создали Идейный центр, в котором пользователи могут регистрировать пожелания, голосовать за них и участвовать в обсуждениях. Самые популярные из них мы вносим в список обновлений.