Работаем с регулярными выражениями: preg_match() и preg_match_all() на простых примерах
preg_match()
Функция preg_match() возвращает количество найденных соответствий. Это может быть 0 (совпадения не найдены) и 1, поскольку preg_match() прекращает свою работу после первого найденного совпадения.В функцию передается три аргумента: регулярное выражение, строка для поиска и переменная для сохранения совпадений
Проверяем на пробелы (пробелы запрещаем):
PHP
if (preg_match('/\s/', $check)) {
$errors[] = 'Слово не должно содержать пробелы';
}
// если есть пробелы, вернет 1, и, соответственно,
// сработает условие
Определяем, содержит ли переменная одну строчную или одну заглавную букву (буквы обязательны):
PHP
$pattern = '/(?=.*[a-z])(?=.*[A-Z])/';
if (!preg_match($pattern, $check)) {
$errors[] = 'Слово должно содержать одну строчную или одну заглавную букву';
}
// если буквы отсутствуют вернет 0 (не TRUE), и, соответственно,
// сработает условие
preg_match_all()
Функция preg_match_all() возвращает количество совпадений регулярного выражения (может быть нулем) либо FALSE, если во время выполнения возникли какие-либо ошибки. В функцию передается три аргумента: регулярное выражение, строка для поиска и переменная для сохранения совпадений.
Проверяем на наличие в слове как минимум трех цифр (переменная для сохранения совпадений - $matches - не используется):
PHP
$pattern = '/\d/';
$check = "Экалыверды";
$minimumNumbers = 3;
$found = preg_match_all($pattern, $check, $matches);
if ($found < $minimumNumbers) {
$errors[] = "Слово должно содержать как минимум $minimumNumbers цифры.";
}
При любом несоответствии, для всех трех случаев, заносим соответствующее предупреждение в массив $errors.

Комментарии к статье