Проверка формата input полей по регулярке в PHP

Проверка формата input полей по регулярке в PHP

Если вы получаете данные с формыот пользователя, например, для записи в БД или передачу в JSON формате, то часто требуется соблюдать строгий формат данных. Чтобы в одном поле передавались только цифры, во втором алфавит с избранными знаками препинания и т.д.Проверять формат данных проще все с регулярными выражениями. Разберем популярные задачи, в которых мы будем фильтровать входящие данные от пользователя.

Для этого нам понадобится функция замены preg_replace() и trim() - ее рекомендую использовать всегда, чтобы убирать пробелы и переводы строк вначале и в конце строки.

Пусть у нас будет такая форма:

<form method="post">
<input type="text" name="marka" placeholder="Алфавит + пробел" >
<input type="text" name="codes" placeholder="Только цифры">
<input type="text" name="alfav" placeholder="Алфавит + цифры + некоторые символы">
<input type="submit" name="but_register" value="Отправить">
</form>

В placeholder-ах отмечен требуемый формат ввода для пользователя. Теперь сделаем php обработчик формы при ее отправки за счет кнопки but_register.

<?php
if (isset($_POST["but_register"])) {
$marka = preg_replace('/[^а-яА-Яa-zA-Z\s"]/u', '', trim($_POST['marka']));
$codes = preg_replace('/[^0-9]/u', '', trim($_POST['codes']));
$alfav = preg_replace('/[^0-9а-яА-Яa-zA-Z\s\.\,\-\"\']/u', '', trim($_POST['alfav']));
echo 'Алфавит + пробел: '.$marka.'<br>';
echo 'Только цифры: '.$codes.'<br>';
echo 'Алфавит + цифры + некоторые символы: '.$alfav.'<br>';
}
?>

Думаю, принцип работы регулярки здесь понятен - просто указываем в скобках [^] разрешенные символы после ^ и поля будут автоматически фильтроваться. Учтите в этих регулярках учитывается регистр. Чтобы делать проверку без учета регистра, поставьте модификатор i после u (который отвечает за ликвидацию жадности) - '/[^0-9]/ui'

Примеры того, как сработает регулярка: 

1. поле, где только алфавит и цифры: Как то, так! )) хе хе хе -> Как то так хе хе хе

2. поле с цифрами: 12 + 2 = 14 (вот так вот!) -> 12214

3. поле с алфавитом и символами: . , - " ' и пробел (\s): Ура! 12 марта: (выходной) ~ а 14, 15 - "обработка 'дзинь". Точно!? - #да -> Ура 12 марта выходной а 14, 15 - "обработка 'дзинь". Точно - да

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

| | Проверка формата input полей по регулярке в PHP | Если вы получаете данные с формыот пользователя, например, для записи в БД или передачу в JSON формате, то часто требуется соблюдать строгий формат да | http://blogprogram.ru/wp-content/uploads/2017/10/813-131x131.jpg