регулярное выражение для номера телефона php
Проверка данных регулярными выражениями в PHP
Содержание:
Сборник основных шаблонов регулярных выражений на PHP для проверки данных.
Проверка набора из латинских букв и цифр
Регулярное выражение для проверки набора только из латинских букв и цифр:
Если необходимо добавить в набор некоторые символы:
Проверка на кириллицу и цифры
Регулярное выражение для проверки набора только из букв кириллицы и цифр:
Проверка на число
Регулярное выражение для проверки данных на целое число:
Регулярное выражение для проверки данных на тип Float (числа с плавающей точкой):
Проверка логина
Регулярное выражение для проверки логина. Разрешено использовать только латинские буквы, цифры, тире и знак подчёркивания. Длина логина от 2 до 20 символов (включительно):
Проверка Email
Регулярное выражение для проверки Email:
Проверка номера телефона
Регулярное выражение для проверки номера телефона:
Проверка даты по формату
Формат MySQL YYYY-MM-DD :
Проверка md5-хэша
Регулярное выражение для проверки на корректность md5-хэша:
Проверка IP адресов
Регулярное выражение для проверки IPv4 адреса:
Проверка IPv6 адреса:
Проверка доменного имени
Регулярное выражение для проверки на корректность доменного имени сайта:
33 самые полезные регулярки для веб-разработчика
33 самые полезные регулярки с примерами использования для быстрого решения наиболее распространенных задач веб-разработки.
Пользовательские данные
1. Юзернейм
2. Валидация email
Проверка адреса электронной почты на корректность – одна из самых частых задач веб-разработчика. Без этого не обходятся ни разнообразные формы подписки, ни авторизация.
Для валидации email существует множество различных регулярок. Вот одна из них – не самая большая и не самая сложная, но достаточно точная для быстрой проверки адреса:
Что используем:
Флаг i в регулярных выражений обеспечивает регистронезависимость сравнения.
3. Номер телефона
Проверяя номер телефона, обязательно учитывайте общепринятые форматы, так как в разных странах их принято записывать по-разному. Например, для американского стиля подойдет вот такая регулярка:
4. Надёжность пароля
Часто встречаете на различных сервисах требование придумать сложный пароль? Кто и как определяет требуемую степень сложности? На самом деле, для этого есть некоторые стандарты: минимальная длина, разный регистр символов, наличие букв, цифр и специальных знаков.
Чтобы обеспечить ваших пользователей надежными паролями, можете воспользоваться вот таким выражением (или составить собственные регулярки со специфическими требованиями):
Подробнее о надежности паролей вы можете узнать из этого руководства.
5. Почтовый индекс (zip-code)
Формат почтового индекса, как и телефона, зависит от конкретного государства.
В России все просто: шесть цифр подряд без разделителей.
Американский zip-code может состоять из 5 символов или в расширенном формате ZIP+4 – из 9.
6. Номер кредитной карты
Разумеется, при проверке номера платежной карты не стоит полагаться на регулярные выражения. Однако с их помощью вы можете сразу же отсеять очевидно неподходящие последовательности и не нагружать сервер лишним запросом.
С помощью вот такой длинной регулярки вы можете поддерживать сразу несколько платежных систем:
Подробнее разобраться, откуда что взялось, вы можете здесь.
Что используем:
Вертикальная черта | в регулярных выражениях обозначает альтернацию, то есть выбор одного варианта из нескольких.
Распространенные форматы
7. Начальные и конечные пробелы
Пробелы в начале и конце строки обычно не несут никакой смысловой нагрузки, но могут повлиять на анализ и обработку данных, поэтому от них следует сразу же избавляться.
Что используем:
Квантификатор + соответствует инструкции <1,>– один и более символов.
8. Дата
С датами приходится работать очень часто, а форматов записи у них великое множество. Прежде чем начинать обработку, имеет смысл проверить, соответствует ли вид переданной строки требуемому.
Вот такое регулярное выражение поддерживает несколько форматов дат – с полными и краткими числами (5-1-91 и 05-01-1991) и разными разделителями (точка, прямой или обратный слеш).
Здесь учитываются даже високосные годы!
9. IPv4
Адрес IP используется для идентификации конкретного компьютера в интернете Он состоит из четырех групп цифр (байтов), разделенных точками (192.0.2.235).
Что используем:
Класс \b означает «границу слова» и имеет нулевую ширину (то есть это не отдельный символ).
10. IPv6
IPv6 – это новый, более сложный синтаксис IP-протокола. Выражение для проверки на этот формат выглядит куда страшнее, хотя на самом деле разница заключается только в поддержке шестнадцатеричных чисел:
11. Base64
Base64 – достаточно распространенный формат кодирования бинарных данных, который часто используется, например, в email-рассылках.
Для валидации строки в этом формате можно использовать следующее регулярное выражение:
12. ISBN
ISBN – международная номенклатура для печатных книг. Номер может состоять из 10 (ISBN-10) или 13 цифр (ISBN-13). На самих книгах ISBN обычно разделен дефисами на несколько групп (код страны, издательства и самой книги), но для проверки и использования их следует удалять.
Это регулярное выражение позволяет проверить оба формата сразу:
Числа
13. Проверка на число
Очень простая проверка строки на число с помощью регулярок:
14. Разделитель разрядов
Задача разбить большое число на разряды по три цифры встречается в разработке довольно часто. Оказывается это очень легко сделать с помощью регулярок.
15. Цена
Цены могут быть представлены во множестве различных форматов. Универсального регулярного выражения для них, скорее всего, не существует, но цену в долларах из строки извлечь очень просто.
Эта регулярка предполагает, что для разделения разрядов числа используются запятые, а дробная часть отделена точкой:
Что используем:
Комбинация <2>означает, что символ из диапазона 5 должен быть повторен ровно 2 раза (дробная часть цены).
Файлы и URL
16. Сопоставить строку URL
Если вам необходимо проверить, является ли полученная строка URL-адресом, вы можете воспользоваться вот такой регуляркой:
Она подойдет для адресов с различными протоколами (HTTP, HTTPS, FTP) и даже без протокола.
17. Извлечение домена
В URL-адресе много частей: протокол, домен, поддомены, путь к странице и строка запроса. С помощью регулярок можно отбросить все лишнее и получить только домен:
Что используем:
Метод match возвращает объект с данными совпадения. Под индексом 1 в нем хранится совпадение, соответствующее первой скобочной группе.
18. Расширения
Одна строчка регулярного выражения позволяет быстро и просто получить расширение файла, с которым вам предстоит работать:
Разумеется, при необходимости сюда можно добавлять другие расширения.
19. Протокол
Иногда требуется извлечь протокол полученной ссылки. Регулярные выражения и тут облегчают жизнь:
Социальные сети
20. Twitter
Имя пользователя Twitter:
21. Facebook
URL аккаунта на Facebook:
22. YouTube
Получение ID видео на YouTube:
Что используем:
Метод exec объекта регулярного выражения работает почти так же, как метод match строки.
HTML и CSS
23. HEX-цвета
Веб-разработчику часто приходится иметь дело с цветами, заданными в шестнадцатеричном формате. Регулярки позволяют легко извлекать такие цвета из строки:
24. Адрес изображения
25. CSS-свойства
Еще одна нетривиальная ситуация – получение свойств CSS с помощью регулярных выражений:
Что используем:
Флаг m в регулярных выражениях включает многострочный режим.
26. HTML комментарии
А это очень полезная регулярка для удаления комментариев из HTML-кода:
27. Title
Получить заголовок веб-страницы можно с помощью такого регулярного выражения:
28. rel=«nofollow»
Эта регулярка выбирает в тексте все ссылки с протоколом http/https без атрибута rel и добавляет его.
29. Медиа запросы
Если требуется проанализировать медиа-запросы CSS, воспользуйтесь этой регуляркой:
Что используем:
Класс \s обозначает пробельный символ (а также таб и перевод строки), а класс \S – наоборот, любой символ кроме пробельного.
30. Подсветка слов
Полезное выражение для поиска и выделения слов в тексте:
Разумеется, слово ipsum можно заменить на любое другое слово или словосочетание
Другие задачи веб-разработчика
31. Проверка версии Internet Explorer
К счастью, старый добрый IE постепенно уходит в прошлое, но он все же еще играет некоторую роль в современном вебе. Этот фрагмент кода позволяет определить версию всеми любимого браузера:
32. Удалить повторы
Регулярки дают возможность автоматически удалить случайные повторы слов без проглядывания всего текста:
33. Количество слов
Порой веб-разработчику необходимо определить количество слов в строке, например, для организации ключевых слов в инструментах аналитики. Сделать это можно с помощью следующих регулярок:
Регулярное выражение для получения номера телефона
Номер может принимать вид не только как написано выше, но и есть варианты
Как составить регулярное выражение, чтобы вытягивался только номер, а остальное не учитывалось. В идеале нужно приводить номер к единообразию но пока это не выйдет. Обрезкой не выйдет т.к. начало номера может быть разное (окончание по знаку Отслеживать
3 ответа 3
Вам следует разделить вытаскивание номера и его форматирование. Конечно, всё можно сделать и одной регуляркой, но это решение не будет выглядеть чисто.
Теперь этот номер надо отформатировать. Обычно номера телефонов приводят к числовому значению, поэтому лучше всего просто удалить лишние символы из номера с помощью функции str_replace() :
Если будете помещать номер телефона в базу данных, выбирайте какое-нибудь текстовое поле, иначе те номера, что начинаются с нуля, как верно подметил @Miron, в дальнейшем могут быть некорректно обработаны. Старайтесь работать с номером телефона как со строкой, а не как с числом.
Чтобы приводить номер к единому образу следует пользоваться библиотеками для форматирования. Например, популярной библиотекой libphonenumber :
Предлагаю автору вопроса, все же для начала привести базу номеров телефонов к единому виду, чтобы не хранить в БД некорректные номера. Если номера телефонов могут быть из разных стран, нужно обязательно хранить код страны отдельно от самого номера и кода оператора/города. Иначе могут возникнуть проблемы.
Никогда не храните номера телефонов, в виде числа. Связано это с тем, что если номер телефона будет начинаться с нуля(ей) при приведении его к типу int вы навсегда потеряете ведущие нули. Номера телефонов нужно хранить исключительно в виде строки (string).
Шаблон для номера телефона
Всем привет. У меня такой вопрос кто-нибудь знает RegExp шаблон для номера телефона (СНГ)? Желательно чтобы умел разбирать:
Буду рад любой помощи.
P.S. Пишу на JavaScript
3 ответа 3
Решил сделать так. Сначало отсеить все нецифровые значения номера, исключения сделать только для всяких скобо, дефисов, пробелов и т.д.
Потом привести их все к нормальному виду. Например вот так:
Ориентировано на российские мобильные + городские с кодом из 3 цифр (например, Москва). Пропускает:
Пользуюсь давно вот этой регуляркой и очень рад:
Всё ещё ищете ответ? Посмотрите другие вопросы с метками регулярные-выражения javascript или задайте свой вопрос.
Похожие
Подписаться на ленту
Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.
дизайн сайта / логотип © 2021 Stack Exchange Inc; материалы пользователей предоставляются на условиях лицензии cc by-sa. rev 2021.9.24.40305
Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.
Регулярные выражения: формат телефонного номера (сотовый, российский)
Добавлено через 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
В принципе, я думаю этих условий достаточно чтобы найти сотовый телефон России
Вот небольшой код (на скорую руку, поэтому может быть не самым оптимальным решением)
Помощь в написании контрольных, курсовых и дипломных работ здесь.
Регулярные выражения для номера телефона с кодом
Всем привет В общем, нужно ввести номер телефона с кодом и при выводе этого номера на экран.
Переадресация с внешнего номера на сотовый
Подскажите как реализовать переадресацию с внешнего номер, на сотовый, по определенному времени.
Поиск телефонного номера в строке
Всем привет. Такая задача. Есть текст. Надо написать программу, которая проверяет, есть ли в строке.