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

Dokuo

Новичок
Здравствуйте. В общем есть регулярка /^[a-zA-Zа-яёА-ЯЁ\s\-]+$/

Так как я дуб дубом в них. Я сгенерил данную регулярку в конструкторе http://regexp-online.com/

Но как же я удивился когда данная регулярка не пропустила имя: Денчик. Фамилия: Муслимов

Я вам покажу лучше свой код (вообще там класс валидации у фреймворка, но я "конвертировал" код, что бы было нагляднее :D )

PHP:
<?php
// ...
$error = [];

if (!preg_match('/^[a-zA-Zа-яёА-ЯЁ\s\-]+$/', $_POST['first_name']))
{
    $error[] = 'В имени запрещённые символы';
}

if (!preg_match('/^[a-zA-Zа-яёА-ЯЁ\s\-]+$/', $_POST['last_name']))
{
    $error[] = 'В фамилии запрещённые символы';
}

if (empty($error))
{
    echo 'Всё отлично';
}
else
{
    foreach ($error as $err)
    {
        echo $err;
    }
}


// ...
?>
Но эта регулярка пропустила например: имя: Коля. Фамилия: Же

В общем какого хрена? о_О и как это фиксить?
 

NBK

Новичок
регулярка корявит, добавьте учУЧ или вообще весь русский алфавит для надежности.
в UTF8 она всегда корявила на русском.
или просто добавить идентификатор UTF u
preg_match('/^[a-zA-Zа-яёА-ЯЁ\s\-]+$/u', $_POST['first_name'])
 
Последнее редактирование:

Активист

Активист
Команда форума
Не делайте [у нас не матерятся] , и не проверяйте не имя, ни фамилию. Как быть с двойными фамилиями, а фамилии с префиксом оглы и т.п.? А составные фамилии. А составные имена? Короче, читайте мат. часть: https://www.huridocs.org/wp-content/uploads/2010/08/howtorecordnames-rus.pdf
 
Последнее редактирование модератором:

NBK

Новичок
Не делайте ху@ни , и не проверяйте не имя, ни фамилию. Как быть с двойными фамилиями, а фамилии с префиксом оглы и т.п.? А составные фамилии. А составные имена? Короче, читайте мат. часть: https://www.huridocs.org/wp-content/uploads/2010/08/howtorecordnames-rus.pdf
Кстати да, поддерживаю.
Мне в банке когда-то давали подобную задачу типа что бы кассиры не спотыкались об одни и те же грабли постоянно "ошибки при вводе паспортных данных", кроме как перебором по реальной базе и + операция по введению в базу новых данных, данная задача не решалась ;)
 

Dokuo

Новичок
Не делайте ... , и не проверяйте не имя, ни фамилию. Как быть с двойными фамилиями, а фамилии с префиксом оглы и т.п.? А составные фамилии. А составные имена? Короче, читайте мат. часть: https://www.huridocs.org/wp-content/uploads/2010/08/howtorecordnames-rus.pdf

Я про всё это вкурсе ;) Но сам я не смогу реализовать. Ну не понимаю я Регулярки :(
 
Последнее редактирование модератором:

Dokuo

Новичок
регулярка корявит, добавьте учУЧ или вообще весь русский алфавит для надежности.
в UTF8 она всегда корявила на русском.
или просто добавить идентификатор UTF u
preg_match('/^[a-zA-Zа-яёА-ЯЁ\s\-]+$/u', $_POST['first_name'])
Спасибо)
 
Сверху