регулярные выражения php номер телефона

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

Регулярные выражения для проверки 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.

Источник

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Источник

Регулярные выражения: формат телефонного номера (сотовый, российский)

Добавлено через 1 час 39 минут
забыл сказать, на входе номера телефонов разного формата:
427-63-22
495-789-5566
(950)354-66-2-4
и т.д.

Регулярные выражения: проверка правильности введенного телефонного номера
Здравствуйте уважаемые форумчане. Подскажите пожалуйста как решить эту задачу: Дан текст.

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

Как изменить формат отображения телефонного номера в базе?
Здравствуйте друзья. В базе есть номера мобильных телефонов вида: «8928XXXXXXX» надо перевести их.

вид 79ххххххх или 89ххххххххх оставить нужно, а потом отрезать от них 7 и 8 (те что в начале).

а не проще применить тогда такой алгоритм:
1. удалить все лишние знаки
2. Проверяем первый символ телефона и оставляем только 7, 8 и 9
3. Проверяем на количество символов:
— если первая цифра 7 или 8, то 11
— если 9 (а мы считаем что на 9 начинаются сотовые телефоны в России), то 10
4. Если 11 символов, то второе число должно быть «9»
5. ну и удаляем 7 и 8

В принципе, я думаю этих условий достаточно чтобы найти сотовый телефон России

Вот небольшой код (на скорую руку, поэтому может быть не самым оптимальным решением)

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

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

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

регулярные выражения php номер телефона. Смотреть фото регулярные выражения php номер телефона. Смотреть картинку регулярные выражения php номер телефона. Картинка про регулярные выражения php номер телефона. Фото регулярные выражения php номер телефонаПоиск телефонного номера в строке
Всем привет. Такая задача. Есть текст. Надо написать программу, которая проверяет, есть ли в строке.

Источник

Регулярное выражение на номер телефона

На сайте есть регулярка на ввод номера телефона

Но все равно можно вводить абсолютно любые цифры, в чем проблема?

2 ответа 2

Дело в том, что наличие атрибута ‘pattern’ у input’а не запрещает ввод других символов, не подходящих под этот паттерн. Он срабатывает после нажатия кнопки типа Submit формы и в этом случае запускается проверка введенного значения на соответствие шаблону. Подробнее.

Если соответствия нет, то форма не отправится дальше. Кроме того, при потере фокуса с элемента ввода и нажатии обычных кнопок (type=»button») валидация так же не сработает.

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками php или задайте свой вопрос.

Похожие

Подписаться на ленту

Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.

дизайн сайта / логотип © 2021 Stack Exchange Inc; материалы пользователей предоставляются на условиях лицензии cc by-sa. rev 2021.10.11.40423

Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.

Источник

Шаблон для номера телефона

Всем привет. У меня такой вопрос кто-нибудь знает RegExp шаблон для номера телефона (СНГ)? Желательно чтобы умел разбирать:

Буду рад любой помощи.

P.S. Пишу на JavaScript

3 ответа 3

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

Потом привести их все к нормальному виду. Например вот так:

Ориентировано на российские мобильные + городские с кодом из 3 цифр (например, Москва). Пропускает:

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

Пользуюсь давно вот этой регуляркой и очень рад:

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками регулярные-выражения javascript или задайте свой вопрос.

Похожие

Подписаться на ленту

Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.

дизайн сайта / логотип © 2021 Stack Exchange Inc; материалы пользователей предоставляются на условиях лицензии cc by-sa. rev 2021.10.11.40423

Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.

Источник

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

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