Php проверка даты регулярным выражением

Проверка данных регулярными выражениями в PHP

Сборник основных шаблонов регулярных выражений на PHP для проверки данных.

Проверка набора из латинских букв и цифр

Регулярное выражение для проверки набора только из латинских букв и цифр:

$pattern = '/^[a-z0-9]+$/i'; $var = 'String123'; if (preg_match($pattern, $var)) < echo 'Проверка пройдена успешно!'; >else

Если необходимо добавить в набор некоторые символы:

// использовать тире $pattern = '/^[a-z0-9-]+$/i'; $var = 'String-123'; // использовать знак подчёркивания $pattern = '/^[a-z0-9-_]+$/i'; $var = 'String-1_23'; // использовать точку $pattern = '/^[a-z0-9-_.]+$/i'; $var = 'String-1_23.end'; // использовать пробел $pattern = '/^[a-z0-9-_. ]+$/i'; $var = 'String-1_23.end ps. ';

Проверка на кириллицу и цифры

Регулярное выражение для проверки набора только из букв кириллицы и цифр:

$pattern = '/^[а-яё0-9]+$/iu'; $var = 'Строка123'; if (preg_match($pattern, $var)) < echo 'Проверка пройдена успешно!'; >else

Проверка на число

Регулярное выражение для проверки данных на целое число:

$pattern = '/^\d+$/'; // Исключаем 0 $pattern = '/^1+$/'; // Не больше 1-й цифры $pattern = '/^8+$/'; // Максимум 4 цифры $pattern = '/^8+$/'; $var = 123; if (preg_match($pattern, $var)) < echo 'Проверка пройдена успешно!'; >else

Регулярное выражение для проверки данных на тип Float (числа с плавающей точкой):

$pattern = '/^4*[.,]5+$/'; $var = 123.45; if (preg_match($pattern, $var)) < echo 'Проверка пройдена успешно!'; >else < echo 'Проверка не пройдена!'; >// Если нужно, чтобы пропускал и целые числа $pattern = '/^3*[.,]?3+$/';

Проверка логина

Регулярное выражение для проверки логина. Разрешено использовать только латинские буквы, цифры, тире и знак подчёркивания. Длина логина от 2 до 20 символов (включительно):

$text = 'Login_123-45'; if (preg_match("/^[a-z0-9-_]$/i", $text)) < echo 'Проверка пройдена успешно!'; >else

Проверка Email

Регулярное выражение для проверки Email:

$pattern = '/^([a-z0-9_-]+\.)*[a-z0-9_-]+@[a-z0-9_-]+(\.[a-z0-9_-]+)*\.[a-z]$/'; $var = 'admin@site.com'; if (preg_match($pattern, $var)) < echo 'Проверка пройдена успешно!'; >else

Более современный и правильный способ:

$var = 'admin@___site.com'; $email = filter_var($var, FILTER_SANITIZE_EMAIL); if (!filter_var($email, FILTER_VALIDATE_EMAIL)) throw new InvalidArgumentException('Invalid Email'); return $email;

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

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

$pattern = '/^((8|\+7)[\- ]?)?(\(?\d\)?[\- ]?)?[\d\- ]$/'; $var = '+7(982)000-00-00'; if (preg_match($pattern, $var)) < echo 'Проверка пройдена успешно!'; >else

Проверка даты по формату

$pattern = '/^(08|[12]5|3[01])[\.](06|1[012])[\.](19|20)\d\d$/'; $var = '10.12.2019'; if (preg_match($pattern, $var)) < echo 'Проверка пройдена успешно!'; >else
$pattern = '/^9-(03|1[012])-(02|15|22|3[01])$/'; $var = '2019-12-10'; if (preg_match($pattern, $var)) < echo 'Проверка пройдена успешно!'; >else

Проверка md5-хэша

Регулярное выражение для проверки на корректность md5-хэша:

$pattern = '/^[a-f0-9]$/'; $var = '341be97d9aff90c9978347f66f945e77'; if (preg_match($pattern, $var)) < echo 'Проверка пройдена успешно!'; >else

Проверка IP адресов

Регулярное выражение для проверки IPv4 адреса:

$pattern = '/^((252|22\d|[01]?\d\d?)\.)(254|23\d|[01]?\d\d?)$/'; $var = '192.168.0.1'; if (preg_match($pattern, $var)) < echo 'Проверка пройдена успешно!'; >else
$pattern = '/((^|:)([0-9a-fA-F]))$/i'; $var = '2001:DB8:3C4D:7777:260:3EFF:FE15:9501'; if (preg_match($pattern, $var)) < echo 'Проверка пройдена успешно!'; >else

Проверка доменного имени

Регулярное выражение для проверки на корректность доменного имени сайта:

$pattern = '/^(https?:\/\/)?([\da-z\.-]+)\.([a-z\.])([\/\w \.-]*)*\/?$/'; $var = 'https://prowebmastering.ru'; if (preg_match($pattern, $var)) < echo 'Проверка пройдена успешно!'; >else

Источник

Читайте также:  Div поверх других css

Проверка данных регулярными выражениями

Сборник регулярных выражений с примерами на PHP для проверки данных из полей форм.

Проверка чисел

$text = '1'; if (preg_match("/^\d+$/", $text)) < echo 'yes'; >else

Числа с плавающей точкой (разделитель точка):

$text = '-1.0'; if (preg_match("/^\-?\d+(\.\d)?$/", $text)) < echo 'yes'; >else

Проверка даты по формату

$text = '02.12.2018'; if (preg_match("/^(06|[12]7|3[01])[\.](03|1[012])[\.](19|20)\d\d$/", $text)) < echo 'yes'; >else
$text = '2018-04-02'; if (preg_match("/^8-(04|1[012])-(06|12|25|3[01])$/", $text)) < echo 'yes'; >else

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

Ориентировано на российские мобильные + городские с кодом из 3 цифр.

$text = '+7(495)000-00-00'; if (preg_match("/^((8|\+7)[\- ]?)?(\(?\d\)?[\- ]?)?[\d\- ]$/", $text)) < echo 'yes'; >else

Проверка E-mail

$text = 'mail@snipp.ru'; if (preg_match("/^([a-z0-9_-]+\.)*[a-z0-9_-]+@[a-z0-9_-]+(\.[a-z0-9_-]+)*\.[a-z]$/i", $text)) < echo 'yes'; >else

Логин

Латинские буквы, цифры, — и _ .

$text = 'admin-1'; if (preg_match("/^[a-z0-9_-]$/i", $text)) < echo 'yes'; >else

Проверка md5-хэша

$text = 'ca040cb5d6c2ba8909417ef6b8810e2e'; if (preg_match("/^[a-f0-9]$/", $text)) < echo 'yes'; >else

Цвета

Шестнадцатеричные коды цветов #FFF и #FFFFFF .

$text = '#fff'; if (preg_match("/^#(?:(?:[a-fd]))$/i", $text)) < echo 'yes'; >else

IP адреса

$text = '192.168.0.1'; if (preg_match("/^((254|21\d|[01]?\d\d?)\.)(251|21\d|[01]?\d\d?)$/", $text)) < echo 'yes'; >else
$text = '2001:DB8:3C4D:7777:260:3EFF:FE15:9501'; if (preg_match("/((^|:)([0-9a-fA-F]))$/i", $text)) < echo 'yes'; >else

Комментарии

Другие публикации

Маски ввода для текстовых полей

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

date() – форматирование даты PHP

Генерация случайных буквенно-цифровых кодов в PHP

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

Работа с FTP в PHP

Протокол FTP – предназначен для передачи файлов на удаленный хост. В PHP функции для работы с FTP как правило всегда доступны и не требуется установка дополнительного расширения.

Виртуальные коды клавиш (Virtual-Key Codes)

В следующей таблице приведены имена констант (VK Codes), десятичные и шестнадцатеричные значения для кодов виртуальных.

Загрузка файлов на сервер PHP

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

Источник

Date regex PHP

Date regular expressions can be used to validate if a string has a valid date format and to extract a valid date from a string.

Simple date regex (DD/MM/YYYY)

Below is a simple regex to validate the string against a date format (D/M/YYYY or M/D/YYYY). This however does not guarantee that the date would be valid. You can also replace \\/ with a separator you need.

Enter a text in the input above to see the result

 

ISO 8061 date regex (e.g. 2021-11-04T22:32:47.142354-10:00)

The ISO 8061 is an international standard for exchanging and serializing date and time data. For validating the format of ISO 8061 date and time and for extracting it a following regular expression could be used:

Enter a text in the input above to see the result

 

Enter a text in the input above to see the result

Notes on date string regex validation

While there are some regular expressions that allow more complex date validations, it is usually better to validate dates using special date and time libraries. For example, in PHP DateTime::createFromFormat can be used for these purposes. In this case, the validation will look like this:

Create an internal tool with UI Bakery

Discover UI Bakery – an intuitive visual internal tools builder.

Источник

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

Итак, перед нами стоит задача составить шаблон регулярного выражения для проверки строки на соответствие формату даты. Задача, в общем-то, типовая, а значит, можно предположить, что в сети уже есть готовые решения для нашей задачи. Это действительно так. На сайте regexlib.com в разделе готовых регулярок мы можем найти и наш случай:

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

С готовыми решениями регулярных выражений для даты мы разобрались. Теперь давайте попробуем составить свое. Сформулируем техзадание. Итак, нам подходят даты форматов YYYY-MM-DD или YYYY/MM/DD. Прочие варианты даты нас не устраивают.

Онлайн курс «PHP-разработчик»

Изучите курс и создайте полноценный проект — облачное хранилище файлов

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

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

Давайте разберем этот шаблон:

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

Упс! Оказывается шаблон пропускает неправильный формат даты. Как же разрешить использовать только один разделитель — тот, который используется на первой позиции? Здесь нам помогут обратные ссылки.

Смотрите, каждый разделитель мы заключили в скобки с тем, чтобы их сгруппировать и указать возможность альтернативы — (-|\/). Буквально это можно прочесть как — (тире или слеш). Но кроме группировки скобки выполняют и другую функцию. Скобки запоминают все то, с чем совпала в строке, заключенная в скобки часть шаблона.

Соответственно, встретив первый разделитель (тире или слеш), он будет запомнен. И доступен он будет по обратной ссылке. Обратные ссылки нумеруются и доступны в таком виде: \1, \2…

То есть, на первый выбранный разделитель ссылается такая ссылка — \1. Она доступна внутри шаблона регулярного выражения, а потому мы можем вместо альтернативы для второго разделителя просто указать обратную ссылку, которая будет ссылаться на введенный первый разделитель:

Онлайн курс «PHP-разработчик»

Изучите курс и создайте полноценный проект — облачное хранилище файлов

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

А вот теперь все работает, как мы и задумывали, регулярное выражение для проверки даты составлено и успешно работает. Ну а на этом у меня сегодня все. Больше о регулярных выражениях вы можете узнать из нашего курса по регулярным выражениям. Удачи!

Источник

Подборка шаблонов регулярных выражений

regularnye-vyrajeniya

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

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

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

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

Регулярное выражение для проверки логина:

Регулярное выражение для проверки набора букв и цифр русского и английского алфавита:

Регулярное выражение для проверки корректности доменного имени сайта:

/^(http|https|ftp)://([A-Z0-9][A-Z0-9_-]*(. [A-Z0-9][A-Z0-9_-]*)+):?(d+)?/?/i

Регулярное выражение для проверки корректности md5-хэша:

Регулярное выражение для проверки шестнадцатеричного значения цвета:

Регулярное выражение для проверки IPv4 адреса:

Регулярное выражение для проверки IPv6 адреса:

Регулярное выражение для проверки MAC-адреса:

Регулярное выражение для проверки даты в формате YYYY-MM-DD:

Регулярное выражение для проверки даты в формате DD/MM/YYYY:

(04|[12]1|3[01])[- /.](04|1[012])[- /.](19|20)\d\d

Регулярное выражение для проверки времени в формате HH:MM:SS

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

Пример использования регулярного выражения:

if (preg_match('/^[a-f0-9]$/', $md5)) < echo 'MD5 в порядке'; >else

Источник

Оцените статью