регулярка для проверки телефона js

Проверка адреса email и номера телефона на javascript

Предоставляя пользователю возможность заполнения полей на сайте, следует проверять введенные данные на валидность. Это позволит предупредить пользователя о случайных ошибках, а так же даст дополнительную защиту от спама. Ярким примером является форма обратной связи, обязательными полями которой часто бывают email и телефон. Займемся их проверкой на правильность заполнения с помощью javascript.

Информация лучше воспринимается на примерах, поэтому посмотрим готовую форму в действии:

Пожалуйста, заполните все поля формы!

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

Валидность адреса электронной почты

Составим регулярное выражение для наших требований:

Разберём правило по частям:

Разобранный пример немного упрощен для лучшего восприятия. У него есть недостаток — первым знаком в email не может быть тире или точка, но приведенное регулярное выражение этого не учитывает. Чтобы это исправить следует его немного поправить:

Проверка валидности номера телефона в javascript

С номером телефона ситуация сложнее, так как номер можно ввести десятками способов:

Есть несколько выходов из ситуации:

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

Для любителей жестких шаблонов приведу пример проверки номера вида 8 (999) 123-45-64

Исходный код примера: html и javascript

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

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

Источник

Веб-заметки и Веб-подсказки

Регулярные выражения для проверки e-mail, URL и номера телефона

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

Регулярное выражение для проверки корректности e-mail
(пример: «nick@mail.com»):

^([a-z0-9_-]+\.)*[a-z0-9_-]+@[a-z0-9_-]+(\.[a-z0-9_-]+)*\.[a-z]<2,6>$

Регулярное выражение для проверки корректности URL
(пример: «http://www.my-site.com»):

^((https?|ftp)\:\/\/)?([a-z0-9]<1>)((\.[a-z0-9-])|([a-z0-9-]))*\.([a-z]<2,6>)(\/?)$

Регулярное выражение для проверки корректности номера телефона
(пример: «+38(044)555-55-55»):

^\+\d<2>\(\d<3>\)\d<3>-\d<2>-\d<2>$

Пример использования на JavaScript:

function isValidPhone(myPhone) <
return /^\+\d<2>\(\d<3>\)\d<3>-\d<2>-\d<2>$/.test(myPhone);
>

32 комментария на «Регулярные выражения для проверки e-mail, URL и номера телефона»

Спасибо автору!
Хоть кто-то догадался всё в одну кучу собрать, чтоб не искат по сто раз.
В закладки! 🙂

Говорят, домены могут быть до 6 символов ( <2,4>вместо <2,6>)

ОЧЕНЬ ПОЛЕЗНЫЙ МАТЕРИАЛ ОЧЕНЬ МНЕ ПОМОГ

А у вас самих на сайте какой regexp используется? Т. к. указанный мыло вида _@a_._.ru и сайт вида 8-.ru и a.ru пропускает (на сервере тестил)

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

Регулярное выражение для проверки корректности URL допускает варианты http://www.my-site………………………………….com
Для исключения этих вариантов необходимо вместо ([a-z0-9-.]*) написать ((\.[a-z0-9-])|([a-z0-9-]))* т.е точка + любой символ из набора либо любой символ из набора.

Спасибо за существенное конструктивное замечание, испавил.

Спасибо большое, это то что я искал!

Для url у меня почему-то не срабатывает для адреса вида http://www.mail.ru/ к примеру

Не работало из-за слэша «/» в конце проверяемого адреса.
Добавил в конце регулярного выражения «(\/?)», теперь работает и с ним.

Регулярка рабочая почти во всех случаях!

Проверку имейла не проходит например такой:
support@wb-concept.com.ua

Проходит.
Перепроверьте пожалуйста:
/^([a-z0-9_-]+\.)*[a-z0-9_-]+@[a-z0-9_-]+(\.[a-z0-9_-]+)*\.[a-z]<2,4>$/.test(«support@wb-concept.com.ua»)
// true

подтверждение существования 6-символьных доменов: http://ru.webcams.travel/
somename@somesubdomain.travel не пройдет уже
поправьте на:
/^([a-z0-9_-]+\.)*[a-z0-9_-]+@[a-z0-9_-]+(\.[a-z0-9_-]+)*\.[a-z]<2,6>$/
понимаю, что случай редкий, однако, мало ли..

А как проверить, чтобы в поле для телефона не спамили иносранцы, а то пишут туда латинские буквы, а надо, чтобы поле для телефона пропускало лишь цифры, пробелы, тире и плюс в любом порядке, лишь бы латинские не пропускало и кириллицу тоже. Спасибо.

Подумал сам, и вот примерно так:
^[+]<0,1>[- (),0-9]<7,>$

Спасибо долго искал качественные регулярные выражения

Ругелярка для URL, работает только для разбора домена.
Если например нужно разобрать путь к картинке http://yandex.st/morda-logo/i/logo.png
то лучше:
^(https?|ftp)\:\/\/[a-zA-Z0-9\.\-]+\.[a-z]<2,>(\/.+)$
(лишние «карманы» почистил)

не лучше ли (\w+@[a-zA-Z_]+?\.[a-zA-Z]<2,6>) для email

Max : » не лучше ли (\w+@[a-zA-Z_]+?\.[a-zA-Z]<2,6>) для email »

нет не лучше. примеры которые ваш шаблон не пропускает

и т.д.
абсолютно реальные адреса

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

Номер телефона — код страны у Вас обязательно 2 символа. На самом деле может быть от 1 до 4. Например через Ваш шаблон не пройдет код России +7 и Украины +380.

Всё-же для URL, наверное, будет лучше
^((https?|ftp)\:\/\/)?([a-z0-9]<1>)((\.[a-z0-9-])|([a-z0-9-]))*([a-z0-9]<1>)\.([a-z]<2,6>)(\/?)$
а то пропускает ссылки типа mail-.ru

В конечном счёте пришёл к такому регулярному выражению для проверки корректности URL (если используются только латинские буквы):
^((https?|ftp)\:\/\/)?([a-z0-9]+([-]*[a-z0-9]*)*[a-z0-9]+)(\.[a-z0-9]+([-]*[a-z0-9]*)*[a-z0-9]+)*\.([a-z]<2,6>)(\/?)$
Из требований, предъявляемых к собственному обозначению доменных имён:
1) содержать не менее двух символов;
2) содержать не более 63 символов;
3) начинаться и заканчиваться буквой или цифрой;
4) не содержать символов, отличных от букв, цифр и дефиса (допустимыми буквами
являются буквы латинского алфавита; прописные и строчные буквы не
различаются);
5) не содержать одновременно дефисы в 3-й и 4-й позициях

реализована проверка корректности собственного обозначения доменного имени любого уровня для пунктов 1,3,4
и не реализована для пунктов 2 и 5.

Источник

Валидация номера телефона на JS и jQuery

регулярка для проверки телефона js. Смотреть фото регулярка для проверки телефона js. Смотреть картинку регулярка для проверки телефона js. Картинка про регулярка для проверки телефона js. Фото регулярка для проверки телефона js

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

Валидация номера телефона на JS

Самое основное в этом деле — регулярное выражение (regex), которое, к счастью, не нужно придумывать самому, а просто взять готовое и внедрить. Сразу скажу, что данная регулярка проверяет российские номера телефонов. Первая конструкция, которую мы рассмотрим, выглядит так:

let regex = /^(\+7|7|8)?[\s\-]?\(?[489]3<2>\)?[\s\-]?5<3>[\s\-]?6<2>[\s\-]?3<2>$/; let phone = ‘89000000000’; // дальше идет проверка на соответствие выражению if(!regex.test(phone)< console.log('Не соответствует'); >else

То же самое можно записать в функцию валидации и вызывать ее где угодно в коде.

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

89000000000 +79000000000 8-900-000-00-00 +7-900-000-00-00 8(900)0000000 8(900)000 00 00 +7 (900) 000 00 00 8(900)-000-00-00 +7(900)-000-00-00 +7(900)000-00-00 8 900 000 00 00 +7 900 000 00 00 8-(900) 000 00 00 +7-(900) 000 00 00 8-(900)-000-00-00 +7-(900)-000-00-00 7(999)999 99 99 79000000000 7-900-000-00-00 7-(900)-000-00-00 7(900)-000-00-00 7(900) 000 00 00 7 (900)-000-00-00 7 (900) 000 00 00 7 900 000 00 00 8000000000 9000000000 800 000 00 00 900 000 00 00 800-000-00-00 900-000-00-00 (800)-000-00-00 (900)-000-00-00

Валидация телефона на jQuery

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

Затем пишем jQuery код.

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

Источник

Регулярка для проверки телефона js

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

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

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

Как известно, регулярные выражения не «привязаны» к какому-то определенному языку программирования, поэтому вы можете использовать приведенные ниже примеры выражений при разработке проектов на различных языках. Например, на JavaScript, PHP или Python.

Лучшее регулярное выражение для валидации email в web формах

Оговорка «на клиенте» сделана не просто так. Задача валидации на клиенте — подсказать пользователю, где он ошибся в написании email-а. Важно случайным образом не запретить пользователю с непредусмотренным емейлом воспользоваться формой. Учитывая то, какие варианты емейла могут быть (неожиданные домены, появляющиеся по пучку каждый месяц, ip адреса в качестве домена, и символы точки и симполы +, и другие неизвестные широкому обывателю вещи), напрашивается вывод, что лучшая валидация проверит емейл на наличие текста вида текст-собачка-текст-точка-текст.

Проверка надежности пароля

Код цвета в шестнадцатеричном формате

Шестнадцатеричные коды цветов используются при веб-разработке очень часто. Это регулярное выражение может быть поможет сравнить: совпадает ли какая-либо строка с шаблоном шестнадцатеричного кода.

Проверка адреса электронной почты

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

IP-адрес (v4)

Как e-mail может использоваться для идентификации посетителя, так IP-адрес является идентификатором конкретного компьютера в сети. Приведенное регулярное выражение проверяет соответствие строки формату IP-адреса v4.

IP-адрес (v6)

Вы также можете проверить строку на соответствие формату IP-адреса новой, шестой версии более продвинутым регулярным выражением.

Разделитель в больших числах

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

Добавление протокола перед гиперссылкой

Независимо от того, с каким языком вы работаете: JavaScript, Ruby или PHP, это регулярное выражение может оказаться очень полезным. С его помощью проверяется любой URL-адрес на наличие в строке протокола, и если протокол отсутствует, указанный код добавляет его в начало строки.

«Вытягиваем» домен из URL-адреса.

Как известно, любой URL-адрес состоит из нескольких частей: вначале указывается протокол (HTTP или HTTPS), иногда за ним идет субдомен, а в завершении добавляется путь к странице. Вы можете использовать это выражение, чтобы вернуть только доменное имя, исключив все остальные части адреса.

Сортировка ключевых фраз по количеству слов

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

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

Поиск валидной строки Base64 в PHP

Если вы являетесь PHP-разработчиком, то иногда вам может понадобиться найти объект, закодированный в формате Base64. Указанное выше выражение может использоваться для поиска закодированных строк в любом PHP-коде.

Проверка телефонного номера

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

Проверка телефонных номеров может стать довольно сложной задачей, поэтому автор статьи рекомендует детально ознакомиться с различными вариантами решения на сайте stackoverflow.com

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

Начальные и конечные пробелы

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

«Вытягиваем» HTML-код изображения

Если по какой-либо причине вам необходимо «вытянуть» HTML-код изображения прямо из кода страницы, это регулярное выражение станет для вас идеальным решением. Хотя оно может без проблем работать на стороне сервера, для фронтенд-разработчиков приоритетней будет использовать метод attr() библиотеки jQuery вместо указанного регулярного выражения.

Проверяем дату на соответствие формату DD/MM/YYYY

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

В PHP имеется отличная функция date(), но она не всегда подходит, ведь в нее может быть передана необработанная строка. Поэтому для проверки указанного формата даты нужно использовать приведенное выше регулярное выражение.

Совпадение строки с адресом видеоролика на YouTube

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

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

Проверка ISBN

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

Проверка почтового индекса (Zip Code)

Автор этого регулярного выражения не только придумал его, но и еще нашел время его описать. Это выражение будет полезно вам, если вы проверяете совпадение строки со стандартным пятизначным индексом или его удлиненным вариантом, содержащим 9 знаков. Обращаем ваше внимание, что это выражение подходит только для проверки американских почтовых индексов. Для индексов других стран необходима настройка.

Для проверки российских почтовых индексов используйте следующее выражение:

Проверка правильности имени пользователя Twitter

Это небольшое регулярное выражение помогает найти имя пользователя Twitter внутри текста. Оно проверяет наличие имени в твитах по шаблону: @username.

Проверка номера кредитной карты

Вы можете ознакомиться с более полным списком кодов для детальной проверки карт. Список включает в себя такие системы как Visa, MasterCard, Discover и многие другие.

Поиск CSS-атрибутов

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

Этот код можно использовать когда будет необходимо «вытянуть» какое-либо CSS-правило из списка правил для какого-нибудь селектора.

Удаление комментариев в HTML

Если вам необходимо удалить все комментарии из блока HTML-кода, воспользуйтесь этим регулярным выражением. Чтобы получить желаемый результат, вы можете воспользоваться PHP-функцией preg_replace().

Проверка на соответствие ссылке на Facebook-аккаунт

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

Проверка версии Internet Explorer

Несмотря на то, что Microsoft выпустил новый браузер Edge, многие пользователи до сих пор пользуются Internet Explorer. Веб-разработчикам часто приходится проверять версию этого браузера, чтобы учитывать особенности разных версий при работе над своими проектами.

Вы можете использовать это регулярное выражения в JavaScript-коде чтобы узнать какая версия IE (5-11) используется.

«Вытягиваем» цену из строки

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

Указанное выше регулярное выражение учитывает различные форматы отображения цены, с его помощью вы сможете «вытянуть» цену из любой символьной строки.

Разбираем заголовки в e-mail

С помощью этого небольшого выражения вы сможете разобрать заголовок e-mail сообщения, чтобы извлечь оттуда список адресатов. Выражение может быть использовано и в случае, если адресатов несколько.

Вместо регулярных выражений, для разбора заголовков e-mail вы можете воспользуйтесь библиотекой на PHP.

Соответствие имени файла определенному типу

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

С помощью этого кода можно получить расширение загружаемого файла и проверить присутствует ли оно в списке разрешенных к загрузке.

Соответствие строки формату URL

Регулярное выражение может проверять URL-адреса с указанием протоколов HTTP и HTTPS на предмет соответствия синтаксису доменов TLD.

Существует простой способ проверки с использованием JavaScript RegExp.

Добавление атрибута rel=”nofollow” в теге ссылки

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

Используя приведенный код, например, совместно с PHP, вы сможете «вытянуть» код ссылок из блоков HTML-кода и добавить в каждую из них атрибут rel=”nofollow”.

Работа с media query

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

Синтаксис поисковых выражений Google

Вы можете составить свои собственные регулярные выражения для манипулирования результатами поиска по вашим запросам в поисковой системе Google. Например, знак плюс (+) добавляет дополнительные ключевые слова, а минус (-) означает, что слова должны быть проигнорированы и удалены из результатов.

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

Заключение

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

Источник

Форматирование номеров телефона с помощью регулярных выражений

регулярка для проверки телефона js. Смотреть фото регулярка для проверки телефона js. Смотреть картинку регулярка для проверки телефона js. Картинка про регулярка для проверки телефона js. Фото регулярка для проверки телефона js

Такая элементарная вещь, как номер телефона, в письменных текстах живёт во множестве вариантов. Обыкновенный номер типа +7 (123) 123-45-67 можно встретить записанным без скобок или дефисов ( +7 123 1234567 ), а то и вообще без пробелов ( +71231234567 ). Не собираюсь оскорблять чувства пишущих, им и так непросто. Но уважающий себя веб-ресурс не может допустить такой типографической разношёрстности. Плюс к тому, необлагороженные номера неудобно читать человеку (то самое human-readable).

Данная статья о том, как привести все телефонные номера на странице к однообразному виду, а также проставить корректные ссылки типа tel: на них. Для решения поставленной задачи используются регулярные выражения JavaScript. Хороший обзор регэкспов дан здесь, также почитать по теме можно на MDN.

Найти все телефонные номера на странице можно таким способом:

Метод match() вернёт и запишет в переменную phoneNumbers массив (объект типа Array ) со всеми найденными на странице номерами.

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

Разберём это выражение:

То есть, фактически, эти части паттерна распознают первые три цифры после кода страны, причём как взятые в скобки, так и без (квантификатор * синонимичен <0,>и означает «либо ноль, либо сколько угодно»).

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

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

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

То была идея, а теперь реализация:

В результате будет выведен аккуратный, каноничный телефонный номер. Работает!

Теперь, чтобы заменить все найденные номера телефонов на единообразные, добавим флаг g :

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

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *