Содержание

Пишем маску ввода для телефона на Vue.js (20 строк кода)

Начну сходу, предположим, что вам необходимо создать простую и удобную маску ввода телефона для своего Vue.js проекта. Вы знаете, что на jQuery есть огромная куча всяких готовых библиотек с нужным функционалом, но что же есть у Vue.js?

А у Vue.js есть Vue.js. Это настолько крутой фреймворк, что с его помощью можно самостоятельно хоть сто масок написать на все случаи жизни, и это довольно просто. Короче, много лишних слов, давайте просто с помощью Vue.js директив напишем свою маску ввода для телефона. Код займет примерно 20 строк!

Значит так, сейчас мы будем работать с двумя технологиями: Vue.js и его директивы, и регулярные выражения. Искренне надеюсь, что вы знакомы с регулярными выражениями, иначе будет немного сложно (для понимания, код то я все равно готовый дам).

Код маски ввода для телефона

Да, это скриншот кода. Если хотите скачать, просто перейдите по ссылке на GitHub и скачайте.

Как активировать

Существует несколько способов: можно добавить директиву в конкретный компонент, а можно зарегистрировать глобально. Я покажу, как зарегистрировать директиву глобально для Nuxt.js и чистого Vue.js.

Активируем маску в чистом Vue.js проекте

Все просто, идем в main.js, там, где у нас создается основной Vue экземпляр и импортирована Vue библиотека. Ниже объявления нового Vue экземпляра регистрируем директиву. Пример:

Естественно, import копировать не надо, он уже должен быть в main.js.

Далее в любом input вызываем нашу директиву с помощью команды v-phone. Прямо как v-model, только v-phone. Для красоты можете взять такой же placeholder, как у меня. Возможны проблемы с компонентами-импутами, но если вы используете стандартный HTML тег <input> можете не беспокоится.

Активируем маску в Nuxt.js

Для тех, кто в танке, Nuxt.js — это тот же Vue.js, только с SSR.

Тут все немного муторно, просто смотрите внимательно.

По желанию создайте внутри Nuxt проекта папку plugins, после создайте файл mask.js (если создали папку plugins, то файл mask.js внутри этой папки). После берите код с GitHub и сохраняйте в mask.js. Пример:

После нам нужно, чтоб Nuxt.js начал “видеть” наш код. Для этого идем в nuxt.config.js в раздел plugins и регистрируем наш файл, как это сделал я:

Важно заметить, что ssr false нужен для того, чтоб Nuxt.js не пытался это отрисовать на сервере. Ну просто зачем?

Ну и для тех, кто хочет немного доработать маску или просто ему интересно узнать, как это фигня работает — милости прошу читайте дальше.

Как “оно” работает

Возвращаюсь к коду с GitHub, буду объяснять по строчкам.

На 1 строке с помощью import Vue form “Vue” мы получаем доступ к Vue.js библиотеке и можем создавать новые экземпляры класса, регистрировать глобально компоненты и директивы.

На 3 строке во Vue.directive мы регистрируем глобально директиву phone, которую можем вызывать в любом месте нашей программы с помощью команды v-phone. Если директиву назвать bruh, то вызов будет v-bruh.

На 4 строке в метод bind мы передаем аргумент el. Аргумент el — это сам элемент, к которому привязана директива. Метод bind — это особый функционал директив во Vue.js. Bind вызывается однократно, при первичном связывании директивы с элементом.

На 5 строке мы “навешиваем” событие oninput на элемент (el). При каждом срабатывании события (набор текста) срабатывает указанная нами функция. Функция в аргументе принимает

событие (event).

На 6 строчке мы проверяем, кем инициализировано событие. Если скриптом, прерываем работу, если пользователем — продолжаем работу программы.

На 10 строке идет сложное регулярное выражение. Сначала мы в replace заменяем все, кроме чисел, на пустоту (в value у input), потом среди чисел в методе match формируем группы. Каждая группа (группа это круглые скобки) будет доступна в виде элемента массива с помощью вызова по индексу, например, x[2] вызовет группу, собранную по паттерну (d{0,3}). В x[0] всегда будет лежать полное значение (value) input.

C 12 строчки начинается логическая конструкция. Сначала я проверяю первую группу на пустоту. Т.е пока 2 группа не сформирована, но 1 уже есть. Здесь подставляется цифра 8 к каждому номеру. Если первый символ 8 — ставим 8. Если 9, то прибавляем к 8. Получится 89.

Во второй части идет сложный тернарный оператор. Если 3 группы нет, я формирую строку из 1 и 2 группы. Если 3 группа есть, я формирую строку из всех 4 групп (тут же добавляю скобки и тире).

На что следует обратить внимание

Если происходит событие onpaste (Ctrl+C) и первая цифра строки 7 (или комбинация +7), то 8 не появляется. Поэтому, я немного расширил директиву и оставил комментарий в Gist на Github. Просто посмотрите как я решил эту «проблему».  Данный пример показывает что с помощью директив можно не только oninput обрабатывать.

Спасибо за внимание. Мысленно пожелайте мне спасибо, если статья была полезна. Этого будет достаточно.

Номер телефона в формах — как помочь пользователю оставить номер на сайте

На первый взгляд, ответ очевиден: пометить поле «номер телефона» как обязательное для заполнения. Но есть ниши, в которых пользователь может уйти с сайта из-за лишних обязательных полей. Например, приложения, софт, сайты по продаже контента. Впрочем, номера пользователей для подобных проектов важны как дополнительные данные, которые дают возможность взаимодействовать с потенциальными клиентами в будущем. Тем более, что существует простое и эффективное решение — использование маски ввода. Докажем это кейсами.

Зачем нужна маска ввода?

Маска ввода показывает, в каком формате нужно вводить данные в поле. Например, если пользователь вводит номер телефона без кода города или телефон в поле для адреса, ему не удастся перейти к следующему пункту. Маска в формах обеспечивает единообразный вид вводимых данных, что упрощает поиск и управление базой. В рекомендациях Netpeak маска ввода телефонного номера — обязательный элемент формы заказа на сайте.

Как и любая практическая рекомендация наших специалистов, это положение основано на успешных кейсах клиентов.

Кейс сайта по продаже приложений: рост количества заполнений поля телефонного номера с 0 до 85%

Так как сайт специализировался на приложениях, поле для ввода номера на сайте было необязательным. Для отслеживания изменения процента клиентов, заполняющих поле «телефон» в форме заказа на сайте, мы применили пользовательскую переменную в Google Analytics. В феврале поле «телефон» не заполнил ни один из девяти покупателей. В марте мы внедрили маску ввода, и пользователи начали её заполнять. Для чистоты эксперимента поле оставили необязательным для заполнения и никаких других изменений не проводили. Результат за март — 19 номеров при 22 заполнивших заявку пользователей. Другими словами, 85% пользователей, заказавших приложение, оставили свой номер телефона.

Кейс сайта информационного центра: увеличение количества заполнений поля телефонного номера на 15,4%

Сайт клиента занимается услугами по написанию рефератов, курсовых, дипломных и прочих работ. Номер телефона пользователя желателен для связи, но на сайте это поле было необязательным. Пользователь мог не заполнять форму или написать что угодно в данном поле. Как и в первый раз, на первом этапе мы установили отслеживание заполнения поля «телефон» в Google Analytics. В ноябре из 59 заявок, оставленных посетителями сайта, 15 не содержали номеров. То есть компания получила лишь 74,6% отправленных форм с заполненным номером. Затем мы добавили маску ввода в поле для телефона. В декабре сайт получил 60 заявок. При этом только 6 заполненных форм не содержали телефона клиента. Следовательно, 90% отправленных форм заказа содержали правильно заполненное поле «телефон». За месяц — рост на 15,4%, только благодаря внедрению маски ввода номера. Напоследок — внутренний кейс агентства.

Маска ввода номера в форме предварительного заказа: кейс Netpeak с ростом количества заполнений поля на 39,4%

Поле для номеров в форме заказа на сайте Netpeak также является необязательным. Но номера телефонов важны, чтобы клиенты всегда знали номер и статус своей заявки (мы высылаем эти данные по SMS), а также для оптимизации работы аккаунт-менеджеров.

Период эксперимента, как и в прошлых примерах — два месяца. В итоге появления маски ввода номера, процент заполнений форм вырос с 44% до 83% — на 39,4%. После эксперимента мы внедрили маску на сайте. Поле для ввода номера осталось необязательным. Заявка не пройдет, только если в этом поле введен некорректный номер. При этом первые цифры в маске меняются в зависимости от страны, в которой находится пользователь сайта. Если речь идет о форме предварительного заказа, то интересно знать, насколько качественнее заявки с номерами телефонов. Мы взяли все заявки, когда-либо полученные через форму предзаказа и вычислили процент тех, что конвертировались в клиентов без номера и с ним. Последних оказалось больше всего на 0,81%.

Вывод: если человек оставляет вам свой номер в форме, это еще не гарантия перечисления средств.

Если говорить о форме предзаказа, на первый план выходят возможности по реактивации клиентов, возможности, которые открываются перед маркетологами, вооруженными базой личных телефонных номеров пользователей. Мы расскажем об успешных кейсах реактивации в одном из новых постов. А пока советуем почитать о мерах, которые стоит предпринять перед любыми действиями с телефонными номерами в базе. Делитесь в комментариях своим опытом внедрения маски ввода для телефонных номеров и наблюдениями за качеством пришедших заявок.

Настройка полей ввода в IS-Kiosk

Номер статьи: 0000356

Задача «Поля ввода данных»


Задача содержит перечень полей ввода данных, которые используются в интерфейсе Киоска для ввода Клиентом различных данных (номер телефона, почта и т.д.). Для каждого поля можно задать правила заполнения путём установки масок.

 Маски для ввода данных

«Маска» — если для поля ввода данных установлена маска, то проверяется соответствие маски и введённых данных. Если введённые данные не соответствуют маски, то отображается соответствующее сообщение «Неверный формат введённых данных».

«Маска на экране» — если для поля ввода данных также установлена маска для отображения на экране, то данная маска отображается в поле ввода и данные вводятся согласно этой маске. После окончания ввода к введённым данным (без преобразавания данных с помощью маски на экране) применяется обычная маска (поле «Маска») и уже это значение отправляется в систему.

Пример использования: для ввода номера телефона можно установить «маску на экране» = ‘+7 (999) 999-99-99’, а обычную «маску» = ‘+79999999999’, тогда на экране будет отображаться удобный для восприятия формат данных, а в систему будет отправлен номер телефона без форматирования.

«Использовать маску при вводе с клавиатуры» – при отключении данной опции настроенные маски будут применяться только, если клиент вводит данные с экранной клавиатуры. Все данных, которые будут набраны с обычной клавиатуры или данные, которые будут поступать со считывателей штрих-кодов в буфер клавиатуры не будут проверяться настроенными масками.

Пример использования: для ручного ввода идентификатора в системе лояльности применяется маска, чтобы не вводить дополнительные символы. При считывании идентификатора в системе лояльности с помощью qr-кода система не будет применять маски, т. к. qr-код содержит полный идентификатор.

 

Правила установки маски:

9 : numeric – ввод цифр от 0 до 9

a : буквы алфавита

* : буквы и цифры

 

Например, для ввода мобильного телефона можно указать маску ‘+7 (999) 9999999’ или ‘+79999999999’

 

Для указания того, чтобы, например, вторая цифра была строго 9, можно указать маску ‘+7\9999999999’

 

Если точное количество цифр неизвестно, то маску можно указать в таком виде ‘+79{1,10}’

тогда можно ввести от 1 до 10 цифр.

 

Можно определить некоторые части маски, как не обязательные. Это делается с помощью [ ].

Например, ‘(99) 9999[9]-9999’

 

Пример маски для ввода email:

*{1,20}[.*{1,20}][.*{1,20}][.*{1,20}]@*{1,20}[.*{2,6}][.*{1,2}]

 

Использование элемента OR: маска может быть 1 из 2 вариантов, указанных в генераторе.

Для того, чтобы определить генератор, используйте |.
например: ‘a|9’ или ‘(aaa)|(999)’

 

Подробнее о правилах установки маски по ссылке:

https://github. com/RobinHerbots/Inputmask

Просмотры: 701

Маска ввода № телефона для сайта на 1С-Битрикс

С ребятами работаем уже 2 года. Отличная команда, отличный подбор программистов.
Практически в любое время суток есть связь с руководителями. Критичные вопросы можно решить даже в 2 часа ночи (для нас как интернет-проекта это очень важно).

Время, когда начинали сотрудничество с Атлантом сейчас вспоминается с легкой ухмылкой. А тогда - все было очень плохо.
Решили кардинально изменить сайт — старый «снести» и перейти на 1С-Битрикс.

Разработку сайта поручили фрилансеру. Он все сделал, сверстал сайт. Но прямо перед запуском у него случились какие-то трудности, 2 недели мы без связи. О нем ничего плохого сказать не могу, но — факт на лицо. Мы остались с недоработанной копией сайта (более 30 критичных доработок).

Как быть в такой ситуации — понятия не имели. Стали искать среди Золотых партнеров Битрикса, которые могли бы нам помочь в сложившейся ситуации.
Написали порядка сотни запросов.
Ответ от Атланта выделялся среди всех! Стоимость за работы оказалась одной из самых низких. Уверенность придавала пошаговая инструкция, что ребята собираются сделать с сайтом.

В итоге, запустили сайт, работаем с ними и ни разу не пожалели!
В первые 6 месяцев после начала сотрудничества — у нас рост продаж в 2 раза. Ставим любые, даже самые сложные задачи. Все выполняется.
Удобно, что все в одном месте: работы по сайту, 1С, хостинг, seo, дизайн и т.д.
Рекомендуем!

Андрей Рудый ( Директор — LEDPremium )

Маска ввода номера телефона с выбором страны

Технические данные

Дата публикации:

29. 02.2020

Дата обновления:

01.11.2020

Адаптивность:

Да

Поддержка композита:

Да

Число установок:

100 — 499 раз

Совместимые редакции

Описание


Решение «Маска ввода номера телефона с выбором страны» для 1С-Битрикс позволяет быстро установить маску ввода номеров телефонов с поддержкой выбора страны для любых полей и форм на Вашем сайте
  ▷  Простая установка модуля за 10 минут
  ▷  Гибкая настройка
  ▷  Решение использует оптимизированные библиотеки
  ✔  Корректно работает на пк, смартфоне и планшете
  ✔  Поддерживает механизм многосайтовости
  ✔  Одинаково хорошо работает с кодировками UTF-8 и Windows-1251
  ✔  Использует стабильные события и работает на большинстве версий 1с-Битрикс
  ✔  Поддерживает композитный и автокомпозитный режим

  1. Установите модуль с Маркетплейс
  2. Нажмите «Настройки» в верхней части админки, в списке модулей выберите «Маска ввода номера телефона с выбором страны»
  3. В  настройках модуля обязательно введите селекторы полей ввода, для которых нужно  применить маску ввода
  4. Если  на вашем сайте не подключен JQuery — активируйте галочку «Подключить  встроенную библиотеку JQuery», заполните прочие настройки по необходимости
  5. Сохраните внесенные настройки. Сбросьте весь кеш сайта
  6. Готово! Модуль установлен, настроен и готов к работе

Технические требования:

  • 1с-Bitrix версий 15.5 и выше
  • PHP версии 5.6 и выше

Формат входной маски — грозные формы

Используйте параметр «Формат поля», чтобы пользователи предоставляли информацию в правильном формате. Это могут быть номера телефонов и почтовые индексы, серийные номера и многое другое! Ниже вы найдете информацию о том, как настроить формат однострочного текстового поля и поля номера телефона.

Обратите внимание: если параметр формата оставлен пустым в поле однострочного текста, дополнительная проверка не применяется. Если поле формата оставлено пустым в поле «Номер телефона», поле будет проверено, чтобы убедиться, что введен действительный номер телефона.

Установить формат с маской ввода

— Премиум-функция —


Вы можете использовать опцию формата, чтобы потребовать конкретный формат и одновременно применить маску ввода. Маска ввода помогает пользователям вводить правильный формат, как показано ниже:
Как установить определенный формат

Определите формат, который будет принят, следуя инструкциям ниже.

  1. Перейдите в опции поля однострочного текста или номера телефона.
  2. Введите предпочтительный формат в поле «Формат».
  3. Сохраните форму и просмотрите ее. Когда вы поместите курсор в поле, вы увидите, что появляется маска ввода. Пользователи смогут вводить только символы, соответствующие сохраненному формату.
Допустимые символы

В настройках формата можно использовать следующие символы:

  • 9 — требуется любой цифровой символ
  • a — требуется любой буквенный символ
  • * — это подстановочный знак; позволяет любой символ
  • ? — делает следующие символы необязательными
Примеры
  • Требуется номер телефона в формате (999)999-9999. , в поле Формат.((?! mini).) * долларов

Access 2016: создание маски ввода

Мастер маски ввода помогает создать маску ввода. Маска ввода ограничивает способ ввода данных в базу данных.

В MS Access 2016 вы можете использовать мастер маски ввода для создания маски ввода. Маска ввода — это набор простых правил, определяющих формат, в котором данные могут быть введены в поле.

Например, маска ввода (999) 000-0000 может использоваться для определения способа ввода телефонных номеров.В этом примере код города не является обязательным, но необходимо ввести остальную часть номера. Это связано с тем, что с любой маской ввода 9 указывает необязательный номер, а 0 указывает обязательный номер.

Использование мастера маски ввода

Теперь мы собираемся применить маску ввода к полю ReleaseDate нашей таблицы Albums . Наша маска ввода гарантирует, что пользователи вводят дату выпуска каждого альбома в правильном формате.

  1. Откройте таблицу

    Albums и запустите мастер маски ввода

    Откройте таблицу Albums в представлении «Дизайн».

    Щелкните поле ReleaseDate , затем посмотрите на нижнюю рамку. В нижней рамке отображаются свойства этого поля.

    В нижнем фрейме щелкните где-нибудь в строке Input Mask . Появится небольшая кнопка с тремя точками.Эта кнопка запускает мастер маски ввода.

    Щелкните эту маленькую кнопку [...] с тремя точками.

  2. Выберите маску ввода

    Маска мастера ввода предлагает вам несколько вариантов того, как вы хотите вводить данные. Вы можете выбрать любой вариант и проверить его в поле Попробовать в нижней части мастера.

    Выберите Средняя дата и нажмите Далее> .

  3. Настройка маски ввода

    Этот экран позволяет вам настраивать маску ввода. Вы можете проверить любые настройки в поле Попробовать в нижней части мастера.

    Мы сделаем одну небольшую корректировку.

    Добавьте два нуля, чтобы маска ввода стала: 99-> L

    Это гарантирует, что пользователь введет дату как ДД-МММ-ГГГГ .Например, 20 марта 2016 г. .

    Когда вы будете довольны маской ввода, нажмите Далее> .

  4. Закройте мастер маски ввода

    Мастер маски ввода покажет вам последний экран (и даст вам последний шанс вернуться, чтобы изменить маску ввода).

    Вместо этого нажмите Завершить .

  5. Ваша вновь созданная маска ввода

    После закрытия мастера маски ввода вы увидите вновь созданную маску ввода напротив свойства Маска ввода в представлении «Дизайн».

Объяснение нашей маски ввода

Мы только что создали маску ввода, которая выглядит так: 99-> L

Определяет, как следует вводить дату. Вот разбивка каждой части:

  • Часть 99 определяет два дополнительных числа (например, для дня). Таким образом, у пользователя есть выбор ввести эту часть даты. Но если они это сделают, это должно быть число.
  • > L указывает, что пользователь должен ввести заглавную букву для этой части даты.
  • определяет две строчные буквы для этой части даты.
  • 0000 определяет четыре числа для этой части даты.

Создать маску ввода для ввода буквенно-цифровых телефонных номеров в Access

Использование буквенно-цифрового номера телефона вашей компании может показаться привлекательным, но ввод данных в Access прекращается, когда вы или ваши пользователи конвертируете номера с клавиатуры ближайшего телефона. Вот как можно заставить Access автоматически преобразовывать буквенные номера телефонов в цифры.

Access обеспечивает удобная маска ввода для ввода телефонных номеров, состоящих из всех цифр. Но что, если вы введете телефонные номера, состоящие из цифр и букв? Для Например, вы продаете программное обеспечение местной футбольной команде, номер телефона (800) GO BIRDS.Вы не можете ввести это, если используете встроенная маска; вам нужно будет создать настраиваемую маску ввода для ввода буквенно-цифровых телефонные номера. Выполните следующие действия:

  1. Откройте таблицу в режиме конструктора.
  2. Щелкните поле Номер телефона.
  3. В разделе «Свойства поля» нажмите кнопку «Тройная точка». в поле свойств Маски ввода.
  4. В мастере маски ввода щелкните «Редактировать список».
  5. Щелкните кнопку New Record.
  6. В поле «Описание» введите Буквенно-цифровой номер телефона .
  7. В поле Маска ввода введите ! (999) AAAAAAA .
  8. В поле Sample Data введите (800) GoBirds .
  9. Нажмите «Закрыть».
  10. Нажмите Готово.

Теперь у вас есть маска ввода, которую вы можно использовать для телефонных номеров, которые состоят как из цифр, так и из букв.

Пропустите подсказку?

Загляните в архив Microsoft Access и ознакомьтесь с нашими последними советами по Access.

Помогите пользователям повысить продуктивность, автоматически подписавшись на бесплатную новостную рассылку TechRepublic по Microsoft Office Suite с советами по Word, Excel и Access, которая доставляется каждую среду.

Определение определенного формата номера телефона — документация CS-Cart 4.3.x

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

Чтобы настроить маску, не позволяющую пользователям вводить случайные последовательности символов в качестве телефонных номеров, выполните следующие действия:

Шаг 1. Включите маски ввода

Внесите некоторые изменения в код, чтобы включить маски ввода:

1.1. Перейдите в каталог установки CS-Cart.

1.2. Откройте файл scripts.tpl в каталоге design / themes / responsive / templates / common .

Примечание

Заменить отзывчивый в пути к сценариям .tpl на имя вашей активной темы, если вы используете любую тему, кроме Responsive .

1.3. Найдите эту строку:

 {скрипт src = "js / lib / появляться / jquery.appear-1.1.1.js"}
 

1,4. Найдя строку, добавьте следующую строку прямо под ней:

 {скрипт src = "js / lib / inputmask / jquery. inputmask.min.js"}
 

1,5. Найдите этот код:

 {если $ config.tweaks.anti_csrf}
 ...
{/если}
 

1,6. Найдя код, добавьте следующую строку прямо под ним:

1.7. Откройте файл profile_fields.tpl в каталоге design / themes / responsive / templates / views / profiles / components .

Примечание

Замените отзывчивый в пути к profile_fields.tpl именем вашей активной темы, если вы используете любую тему, кроме Отзывчивый .

1,8. Найдите следующий код:

 {else} {* Простой ввод *}
      
  {/если}
 

1.9. Добавьте в код условие {if $ field.field_type == "P"} data-inputmask = "'mask': '(999) 999-9999'" {/ if} , чтобы он выглядел так :

 {else} {* Простой ввод *}
       field_type == "P"} data-inputmask = "'mask': '(999) 999-9999'" {/ if} {if $ field.autocomplete_type} x-autocompletetype = "{$ поле.autocomplete_type} "{/ if} type =" text "name =" {$ data_name} [{$ data_id}] "size =" 32 "value =" {$ value} "{if! $ skip_field} {$ disabled_param nofilter} {/ if} />
  {/если}
 

Теперь эта маска ввода будет применяться ко всем полям ввода, которые имеют Телефон в качестве своего типа.

Примечание

Указанная нами маска ввода — (999) 999-999 ; это означает, что пользователи смогут вводить только цифры и только в указанном формате. Вы можете создавать маски ввода, которые разрешают буквы и дополнительные части — узнайте больше на jquery.страница документации inputmask.

Шаг 2. Добавьте новые поля профиля для телефонных номеров

Поля профиля по умолчанию для номеров телефонов имеют тип Поле ввода , поэтому маска ввода к ним не применяется. Нам нужно создать новые поля профиля с типом Телефон .

2.1. Авторизуйтесь в панели администрирования вашего магазина.

2.2. Перейдите в Администрирование → Поля профиля .

2.3. Нажмите кнопку + , чтобы добавить новое поле.

2.4. Введите информацию о новом поле профиля. Я назвал поле Телефонный номер , чтобы избежать двух разных полей Телефон .

Важно

Обязательно установите Тип на Телефон , чтобы маска ввода применялась к этому полю.

2,5. Нажмите кнопку Создать .

2.6. Установите флажки, чтобы определить, какие поля отображать и где их отображать. Нажмите Сохранить , чтобы сохранить изменения.

2.7. Проверьте, как работает маска: откройте свой магазин и попробуйте зарегистрироваться в качестве покупателя или отредактируйте свои данные в области покупателя. Когда вы попытаетесь заполнить поле Номер телефона , вы должны увидеть маску ввода.

Важно

Если вы не видите никаких изменений, попробуйте очистить кеш: удалите каталог var / cache вашего магазина и обновите страницу в браузере.

Примечание

Если вы хотите использовать тот же формат номера телефона в разделе Адрес выставления счета / доставки , создайте дополнительное поле ввода с Тип , установленным на Телефон и Раздел , установленным на Адрес выставления счета / Адрес доставки .Показать это новое поле вместо существующего поля Телефон .

Как использовать настраиваемые маски ввода в WPForms

Вы хотите, чтобы для поля формы требовался определенный формат? Пользовательские маски ввода позволяют устанавливать правила для значения, которое пользователю разрешено вводить в поле. Это может быть полезно для международных телефонных номеров, почтовых индексов и т. Д.

В этом руководстве мы покажем вам, как создавать и добавлять собственные маски ввода в поле формы.


Добавление пользовательской маски ввода

Прежде чем мы начнем, создайте новую форму или отредактируйте существующую форму.

Пользовательские маски ввода можно добавить в любое поле Однострочный текст . После того, как вы добавили этот тип поля в форму, щелкните его, чтобы открыть панель параметров поля.

В параметрах поля вам нужно открыть раздел Дополнительные параметры . Затем вы можете добавить свое правило в поле Input Mask .

Базовые маски ввода

Чтобы создать правила для настраиваемой маски ввода, вам потребуется использовать определенный набор символов.

  • 9 : числовой (0-9)
  • a : По алфавиту (от a до z или от A до Z)
  • A : Прописные буквы (A-Z)
  • * : буквенно-цифровые (0–9, a – z или A – Z)
  • и : Буквенно-цифровые символы в верхнем регистре (0–9 или A – Z)

Например, если вы хотите запросить 5-значный номер, вы можете ввести пять 9 в поле Маска ввода.

Когда форма отображается на странице и пользователь щелкает мышью в поле, для каждой требуемой цифры отображается подчеркивание, чтобы помочь пользователю. Кроме того, поскольку мы использовали символ 9 , будут разрешены только числовые значения (без букв и других символов).

Кроме того, в маску ввода можно включать такие символы, как дефис (-) или круглые скобки. Например, вы можете использовать следующую маску ввода, чтобы потребовать телефонный формат США с кодом страны США:

+1 (999) -9999

Когда пользователь щелкает в этом поле, он увидит подчеркивание (_) вместо 9 символов.

Экранирование символов специальной маски

Хотели бы вы использовать 9 или A в маске ввода без преобразования их в подчеркивание?

Чтобы избежать преобразования любого из символов специальной маски ввода в подчеркивание, вы можете просто добавить две обратные косые черты () перед символом.

В качестве примера создадим маску ввода для URL-адреса Instagram.

Если мы ввели маску ввода https://instagram.com/aaaaaaaaaaa , все символы и будут преобразованы в символы подчеркивания при просмотре маски в форме.Это потому, что — это специальный символ в маске ввода.

Чтобы исправить это, нам просто нужно добавить двойную обратную косую черту перед любыми и , которые мы не хотим преобразовывать в подчеркивание. Итак, в опции Input Mask мы введем https: // inst \\ agr \\ am.com/aaaaaaaaaaa .

Теперь, когда мы просматриваем это поле во встроенной форме, подчеркивание будет отображаться только там, где мы предполагали.

Необязательные символы

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

Все необязательные символы следует заключать в квадратные скобки. Например:

(99) 9999-9999 [9]

Поскольку последний номер является необязательным, будет принят либо (98) 7654-3210 , либо (98) 7654-32109 .

Примеры

Простой почтовый индекс в США:

  • Маска: 99999
  • Пример ввода: 98765

Почтовый индекс США с опциональным плюсом 4:

  • Маска: 99999 [-9999]
  • Пример ввода: 98765 или 98765-4321

Артикул продукта (2 девятки, за которыми следуют 3 цифры или заглавные буквы)

  • Маска: \ 9 \ 9 - &&&
  • Пример ввода: 99-654 или 99-BC8

Имя пользователя, состоящее из 6-8 букв (первая буква в верхнем регистре, остальные в нижнем регистре)

  • Маска: Aaaaa [aa]
  • Пример ввода: Sullie or Sulliewp

Имя пользователя Twitter (можно использовать от 4 до 15 цифр или прописных / строчных букв)

  • Маска: @ **** [***********]
  • Пример ввода: @easywpforms или @WPBeginner

Расширенные маски ввода

Если вам нужен еще больший контроль над масками ввода вашей формы, вы также можете использовать расширенные параметры формата. Их можно использовать в сочетании со всеми описанными выше символами.

Вот символы, которые вы можете использовать ( n и m представляют собой числовые значения):

  • {n} : Повторить любой другой вариант символа n раз
  • {n, m} : повторите любой другой символ между n и m раз.

Примеры:

URL-адрес Facebook (допускается 1-25 символов):

  • Маска: https: // f \ acebook.com / * {1,22}
  • Примеры ввода: https://facebook.com/wpforms или https://facebook.com/monsterinsights

Простой номер телефона из 10–12 цифр:

  • Маска: 9 {10} [9 {0,2}]
  • Пример ввода: 9876543210 или 987654321098

Электронная почта для определенного домена (допускается 1–51 символов):

  • Маска: * [* {0,50}] @ mysite. com
  • Пример ввода: [email protected] или supportteam @ mysite.com

Артикул продукта, состоящий из 8–11 символов (можно использовать цифры или прописные буквы):

  • Маска: & {4} - & {4} [& {0,3}]
  • Пример ввода: A987-BC65 или A987-BC65D43

Вот и все! Теперь вы можете создавать собственные маски ввода, чтобы требовать определенных форматов в ваших формах.

Далее, хотите ли вы сделать ваши формы более компактными? Обязательно ознакомьтесь с нашим руководством по использованию многоколоночных макетов, чтобы узнать, как разместить несколько полей в любой строке формы.

15 библиотек масок ввода JavaScript — Bashooka

Проверка ввода — это всегда рутинная работа. Маска ввода — это простой способ принудительно установить формат ввода пользователя. Итак, вот 15 библиотек JavaScript для добавления задачи ввода в поля ввода.

Раскройте потенциал WordPress Объявление

Великолепная коллекция из 11000+ тем WordPress, включая шаблоны Bootstrap и ресурсы дизайна

Скачать сейчас

Раскол.

js

Cleave.js имеет простую цель: помочь вам автоматически форматировать вводимый текстовый контент. Идея состоит в том, чтобы предоставить простой способ повысить удобочитаемость поля ввода путем форматирования ваших типизированных данных. Используя эту библиотеку, вам не нужно будет писать какие-либо умопомрачительные регулярные выражения или шаблоны масок для форматирования вводимого текста.

Маска ввода

Inputmask — это библиотека javascript, которая создает маску ввода. Inputmask может работать с обычным javascript, jQuery и jqlite.Маска ввода помогает пользователю с вводом, обеспечивая предопределенный формат. Это может быть полезно для дат, чисел, телефонных номеров.

Текстовая маска

Text Mask — это библиотека входных масок. Он может создавать маски ввода для телефона, даты, валюты, почтового индекса, процента, электронной почты и буквально чего угодно! Есть удобные оболочки для React, Angular 2, Ember и Vue.

Ввод международного телефона

Плагин JavaScript для ввода и проверки международных телефонных номеров. Он добавляет раскрывающийся список флагов к любому входу, определяет страну пользователя, отображает соответствующий заполнитель и предоставляет методы форматирования / проверки.

Imaskjs

ванильная маска ввода javascript.

Плагин JQuery Mask

Плагин jQuery для создания масок для полей форм и элементов HTML.

Маска ввода React

Входной маскирующий компонент для React. Сделано с вниманием к UX.

Маскировка входа

Библиотека маскирования ввода, доступная независимо от платформы.input-mask.js позволяет вам включать маску на любой ввод, где требуется определенный формат ввода данных. Текст-заполнитель остается на месте, показывая, какие символы еще нужно добавить. Заполнитель имеет стили CSS. Пользователь может вводить буквы и цифры. Все остальные символы, такие как пробелы, тире и круглые скобки, автоматически добавляются сценарием, что упрощает ввод данных при использовании динамических клавиатур.

Ванильный маскировщик

VanillaMasker — это чистый ввод маски javascript.Это чистый ввод маски JavaScript. Теперь вы можете использовать простую и чистую библиотеку javascript для маскировки элементов ввода без необходимости загружать для этого jQuery или Zepto. Давайте жить в легковесном клиентском мире, используя микробиблиотек, как VanillaMasker! Не беспокойтесь о том, где это будет работать, потому что это кросс-браузерная библиотека для разных устройств. И если вы обнаружите какую-либо ошибку, сообщите нам об этом, сообщив о проблеме.

Маска Vue

Крошечный (

Маски углового ввода

Проверенные маски ввода для AngularJS.

Superplaceholder.js

superplaceholder.js — это библиотека, которая оживляет ваши заполнители ввода, циклически повторяя несколько инструкций в одном заполнителе ввода.

Рифм

React Input Format & Mask, крошечный компонент для преобразования любого входного компонента в форматированный или замаскированный вход. Поддерживает номер, дату, телефон, валюту, кредитную карту и т. Д.

Maskjs

Mask.js — это простая функция, которую вы можете использовать, чтобы заставить пользователя ввести шаблон во входные данные.

JQuery Maskmoney

Плагин

jQuery для маскировки ввода данных во входном тексте в виде денег (валюты).

— HTML: язык разметки гипертекста

элементы типа tel используются, чтобы позволить пользователю вводить и редактировать номер телефона. В отличие от и , входное значение не проверяется автоматически на определенный формат перед отправкой формы, поскольку форматы телефонных номеров сильно различаются мир.

Исходный код этого интерактивного примера хранится в репозитории GitHub. Если вы хотите внести свой вклад в проект интерактивных примеров, клонируйте https://github. com/mdn/interactive-examples и отправьте нам запрос на перенос.

Несмотря на то, что входы типа tel функционально идентичны стандартным входам text , они действительно служат полезным целям; Наиболее очевидным из них является то, что мобильные браузеры — особенно на мобильных телефонах — могут предпочесть специальную клавиатуру, оптимизированную для ввода телефонных номеров.Использование определенного типа ввода для телефонных номеров также делает добавление настраиваемой проверки и обработки телефонных номеров более удобными.

Примечание: Браузеры, которые не поддерживают тип tel , возвращаются к стандартному вводу текста.

Значение A DOMString , представляющая номер телефона, или пустая
События изменить и вход
Поддерживаемые общие атрибуты автозаполнение , список , maxlength , minlength , pattern , placeholder , readonly , and size
IDL-атрибуты список , selectionStart , selectionEnd , selectionDirection , and value
Методы select () , setRangeText () , setSelectionRange ()

Атрибут значения элемента содержит DOMString , который либо представляет телефонный номер, либо является пустой строкой ( "" ).

В дополнение к атрибутам, которые работают со всеми элементами , независимо от их типа, входы телефонных номеров поддерживают следующие атрибуты:

Атрибут Описание
список Идентификатор элемента , который содержит необязательные предопределенные параметры автозаполнения
макс. Длина Максимальная длина в символах UTF-16, принимаемая в качестве допустимого ввода
мин. Длина Минимальная длина, которая считается допустимой для содержимого поля
узор Регулярное выражение, которому должно соответствовать введенное значение, чтобы пройти проверку ограничения
заполнитель Пример значения для отображения внутри поля, когда оно не имеет значения
только для чтения Логический атрибут, который, если присутствует, указывает, что содержимое поля не должно редактироваться пользователем
размер Количество символов в ширину поля ввода должно быть на экране

list

Значения атрибута list - это id элемента , расположенного в том же документе. предоставляет список предопределенных значений, которые можно предложить пользователю для этого ввода. Любые значения в списке, несовместимые с типом , не включены в предлагаемые параметры. Предоставленные значения являются предложениями, а не требованиями: пользователи могут выбрать из этого предопределенного списка или указать другое значение.

maxlength

Максимальное количество символов (в единицах кода UTF-16), которое пользователь может ввести в поле телефонного номера.Это должно быть целое число 0 или больше. Если не указано maxlength или указано недопустимое значение, поле номера телефона не имеет максимальной длины. Это значение также должно быть больше или равно значению minlength .

Входные данные не пройдут проверку ограничения, если длина текста, введенного в поле, превышает maxlength UTF-16 code units.

minlength

Минимальное количество символов (в единицах кода UTF-16), которое пользователь может ввести в поле телефонного номера. Это должно быть неотрицательное целое число, меньшее или равное значению, заданному параметром maxlength . Если не указана минимальная длина или указано недопустимое значение, ввод телефонного номера не имеет минимальной длины.

Поле номера телефона не пройдет проверку ограничения, если длина текста, введенного в поле, меньше minlength UTF-16 code units.

шаблон

Атрибут шаблона , если он указан, представляет собой регулярное выражение, которому должно соответствовать входное значение , чтобы значение прошло проверку ограничения.Это должно быть допустимое регулярное выражение JavaScript, используемое типом RegExp и описанное в нашем руководстве по регулярным выражениям; флаг 'u' указывается при компиляции регулярного выражения, так что шаблон обрабатывается как последовательность кодовых точек Unicode, а не как ASCII. Вокруг текста шаблона не следует указывать косую черту.

Если указанный шаблон не указан или недействителен, регулярное выражение не применяется, и этот атрибут полностью игнорируется.

Подсказка: Используйте атрибут title , чтобы указать текст, который большинство браузеров будет отображать как всплывающую подсказку, чтобы объяснить, какие требования должны соответствовать шаблону. Вы также должны включить рядом другой пояснительный текст.

См. Подробности и пример в разделе «Проверка шаблона» ниже.

заполнитель

Атрибут заполнитель - это строка, которая дает пользователю краткую подсказку относительно того, какая информация ожидается в поле.Это должно быть слово или короткая фраза, демонстрирующая ожидаемый тип данных, а не пояснительное сообщение. Текст не должен включать символы возврата каретки или перевода строки.

Если контент элемента управления имеет одну направленность (LTR или RTL), но должен представлять заполнитель в противоположной направленности, вы можете использовать символы форматирования двунаправленного алгоритма Unicode, чтобы переопределить направленность внутри заполнителя; см. Переопределение двунаправленного текста с использованием управляющих символов Unicode в Алгоритме двунаправленного текста Unicode для этих символов.

только для чтения

Логический атрибут, который, если он присутствует, означает, что это поле не может редактироваться пользователем. Однако его значение по-прежнему можно изменить с помощью кода JavaScript, напрямую задавая свойство HTMLInputElement.value .

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

размер

Атрибут размер - это числовое значение, указывающее, сколько символов должно быть в ширину поле ввода.Значение должно быть числом больше нуля, а значение по умолчанию - 20. Поскольку ширина символов различается, это может быть точным, а может и нет, и на это не следует полагаться; результирующий ввод может быть уже или шире, чем указанное количество символов, в зависимости от символов и шрифта ( шрифт используемые настройки).

Это означает, что , а не устанавливает ограничение на количество символов, которые пользователь может ввести в поле. Он лишь приблизительно указывает, сколько людей можно увидеть одновременно.Чтобы установить верхний предел длины входных данных, используйте атрибут maxlength .

Для полей ввода телефонного номера доступны следующие нестандартные атрибуты. Как правило, вам следует избегать их использования, если это не поможет.

Атрибут Описание
автозамена Разрешить или запретить автокоррекцию при редактировании этого поля ввода. Только Safari.
mozactionhint Строка, указывающая тип действия, которое будет выполнено при нажатии пользователем клавиши Enter или Return при редактировании поля; это используется для определения соответствующей метки для этой клавиши на виртуальной клавиатуре. Firefox только для Android.

автозамена Этот API не стандартизирован.

Расширение Safari, атрибут автозамены Атрибут - это строка, которая указывает, следует ли активировать автоматическое исправление, когда пользователь редактирует это поле.Допустимые значения:

на
Включить автоматическое исправление опечаток, а также обработку замен текста, если они настроены.
оф.
Отключить автоматическое исправление и замену текста.

mozactionhint Этот API не стандартизирован.

Расширение Mozilla, поддерживаемое Firefox для Android, которое дает подсказку о том, какое действие будет выполнено, если пользователь нажмет клавишу Enter или Return при редактировании поля.Эта информация используется, чтобы решить, какую метку использовать на клавише . Введите на виртуальной клавиатуре.

Допустимые значения: перейти , выполнить , следующий , поиск и отправить . С помощью этой подсказки браузер решает, какую метку поставить на клавишу ввода.

Телефонные номера - это очень часто собираемый тип данных в Интернете. Например, при создании любого типа сайта регистрации или электронной коммерции вам, вероятно, потребуется спросить у пользователя номер телефона, будь то для деловых целей или для связи в чрезвычайных ситуациях.К сожалению, с учетом того, насколько часто вводятся телефонные номера, универсальное решение для проверки номеров телефонов нецелесообразно.

К счастью, вы можете учесть требования своего сайта и самостоятельно реализовать соответствующий уровень проверки. Подробнее см. Проверка ниже.

Пользовательские клавиатуры

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

Примеры нестандартных клавиатур на мобильных устройствах.
Firefox для Android WebKit iOS (Safari / Chrome / Firefox)

Простой ввод тел.

В самом простом виде ввод тел. Может быть реализован следующим образом:

  
  

Здесь нет ничего волшебного.При отправке на сервер указанные выше входные данные будут представлены как, например, telNo = + 12125553151 .

Заполнители

Иногда бывает полезно предложить контекстную подсказку о том, какую форму должны принимать входные данные. Это может быть особенно важно, если дизайн страницы не содержит описательных меток для каждого . Здесь на помощь приходят заполнители . Заполнитель - это значение, которое демонстрирует форму, которую должно принимать значение , представляя пример допустимого значения, которое отображается внутри поля редактирования, когда значение элемента равно "" .После ввода данных в поле заполнитель исчезает; если поле пусто, заполнитель появляется снова.

Здесь у нас есть ввод tel с заполнителем 123-4567-8901 . Обратите внимание, как заполнитель исчезает и появляется снова, когда вы манипулируете содержимым поля редактирования.

    

Управление размером ввода

Вы можете контролировать не только физическую длину поля ввода, но также минимальную и максимальную длину, разрешенную для самого вводимого текста.

Размер физического элемента ввода

Физическим размером поля ввода можно управлять с помощью атрибута size . С его помощью вы можете указать количество символов, которое поле ввода может отображать одновременно. В этом примере, например, поле редактирования tel имеет ширину 20 символов:

    
Длина значения элемента

Размер не связан с ограничением длины введенного телефонного номера.Вы можете указать минимальную длину в символах для введенного телефонного номера с помощью атрибута minlength ; аналогично используйте maxlength , чтобы установить максимальную длину введенного телефонного номера.

В приведенном ниже примере создается поле для ввода телефонного номера шириной в 20 символов, при этом требуется, чтобы его содержимое было не короче 9 и не длиннее 14 символов.

    

Примечание : Приведенные выше атрибуты действительно влияют на проверку - входные данные в приведенном выше примере будут считаться недопустимыми, если длина значения меньше 9 символов или больше 14. Большинство браузеров даже не позволяют вводить значение, превышающее максимальную длину.

Предоставление параметров по умолчанию

Как всегда, вы можете указать значение по умолчанию для поля ввода tel , установив его значение Атрибут :

    
Предлагаемые значения

Сделав еще один шаг, вы можете предоставить список значений телефонных номеров по умолчанию, из которых пользователь может выбирать.Для этого используйте атрибут list . Это не ограничивает пользователя этими параметрами, но позволяет ему быстрее выбирать часто используемые телефонные номера. Это также предлагает подсказки для автозаполнения . Атрибут списка определяет идентификатор элемента , который, в свою очередь, содержит один элемент на предлагаемое значение; значение для каждой опции - это соответствующее предлагаемое значение для поля ввода телефонного номера.

  



    

При наличии элемента и его , браузер предложит указанные значения в качестве возможных значений для адреса электронной почты; обычно это отображается как всплывающее или раскрывающееся меню, содержащее предложения.Хотя конкретный пользовательский интерфейс может варьироваться от одного браузера к другому, обычно щелчок в поле редактирования представляет раскрывающийся список предлагаемых адресов электронной почты. Затем, когда пользователь вводит текст, список корректируется, чтобы отображать только отфильтрованные совпадающие значения. Каждый набранный символ сужает список до тех пор, пока пользователь не сделает выбор или не введет настраиваемое значение.

Вот скриншот того, как это может выглядеть:

Как мы уже упоминали ранее, довольно сложно предоставить универсальное решение для проверки телефонных номеров на стороне клиента.Так что мы можем сделать? Рассмотрим несколько вариантов.

Важно : проверка формы HTML - это , а не , заменяющая сценарии на стороне сервера, которые гарантируют, что введенные данные находятся в правильном формате, прежде чем они будут разрешены в базе данных. Для кого-то слишком легко внести изменения в HTML, которые позволят им обойти проверку или полностью удалить ее. Также есть возможность полностью обойти ваш HTML и отправить данные прямо на ваш сервер. Если ваш серверный код не может проверить данные, которые он получает, может произойти катастрофа, когда в вашу базу данных будут введены неправильно отформатированные данные (или данные, которые слишком большие, неправильного типа и т. Д.).

Создание телефонных номеров обязательными

Вы можете сделать так, чтобы пустой ввод был недопустимым и не передавался на сервер с использованием атрибута required . Например, давайте использовать этот HTML:

  <форма>
  

И давайте включим следующий CSS, чтобы выделить допустимые записи галочкой, а недопустимые записи крестиком:

  div {
  нижнее поле: 10 пикселей;
  положение: относительное;
}

input [type = "number"] {
  ширина: 100 пикселей;
}

input + span {
  отступ справа: 30 пикселей;
}

input: invalid + span: after {
  позиция: абсолютная; содержание: '✖';
  отступ слева: 5 пикселей;
  цвет: # 8b0000;
}

input: valid + span: after {
  позиция: абсолютная;
  содержание: '✓';
  отступ слева: 5 пикселей;
  цвет: # 009000;
}  

Результат выглядит так:

Проверка шаблона

Если вы хотите дополнительно ограничить вводимые числа, чтобы они также соответствовали определенному шаблону, вы можете использовать атрибут шаблон , который принимает в качестве своего значения регулярное выражение, которому должны соответствовать введенные значения.

В этом примере мы будем использовать тот же CSS, что и раньше, но наш HTML изменился, чтобы он выглядел так:

  <форма>
  

Обратите внимание, что введенное значение сообщается как недопустимое, если не сопоставлен шаблон xxx-xxx-xxxx; например, 41-323-421 не будет принят.И 800-MDN-ROCKS тоже. Однако 865-555-6502 будут приняты. Этот конкретный шаблон, очевидно, полезен только для определенных языков - в реальном приложении вам, вероятно, придется изменять используемый шаблон в зависимости от языкового стандарта пользователя.

В этом примере мы представляем простой интерфейс с элементом элементов, позволяющих им войти. каждая часть номера телефона; нет причин, по которым у вас не может быть нескольких входов tel .

Каждый вход имеет атрибут заполнитель , чтобы показать подсказку зрячим пользователям о том, что в него вводить, шаблон для обеспечения определенного количества символов для желаемого раздела и атрибут aria-label , содержащий подсказка для чтения пользователям программы чтения с экрана о том, что в нее следует ввести.

  <форма>
  

Введите свой номер телефона:

Требуется

JavaScript относительно прост - он содержит обработчик события onchange , который при изменении значения , заполнитель и aria-label чтобы соответствовать формату телефонных номеров в этой стране / территории.

  var selectElem = document.querySelector («выбрать»);
var inputElems = document.querySelectorAll ("ввод");

selectElem.onchange = function () {
  for (var i = 0; i  pattern = "[0-9] {4,8}";
    inputElems [1] .setAttribute ("метка арии", "Местный номер");
  } else if (selectElem.value === "Германия") {
    inputElems [2] .parentNode.style.display = "встроенный";

    inputElems [0] .placeholder = "Код города";
    inputElems [0] .pattern = "[0-9] {3,5}";

    inputElems [1] .placeholder = "Первая часть";
    inputElems [1] .pattern = "[0-9] {2,4}";
    inputElems [1] .setAttribute ("метка арии", "Первая часть числа");

    inputElems [2] .placeholder = "Вторая часть";
    inputElems [2] .pattern = "[0-9] {4}";
    inputElems [2] .setAttribute ("метка-ария", "Вторая часть числа");
  }
}  

Пример выглядит так:

Это интересная идея, которая показывает потенциальное решение проблемы работы с международными телефонными номерами.Конечно, вам придется расширить пример, чтобы обеспечить правильный шаблон для потенциально каждой страны, что потребовало бы много работы, и все равно не было бы надежной гарантии, что пользователи будут вводить свои номера правильно.