Проверка ФИО

  • Автор темы Alien193
  • Дата начала
Статус
Закрыто для дальнейших ответов.
A

Alien193

Требуется проверка Фамилия Имя Отчества, формат например: "Пупкин Василий Иванович".
Регулярка не работает хоть убей, хотя должна.
PHP:
preg_match('/^([А-ЯЁ]{1})([а-яё]{2,20})([ ]{1})([А-ЯЁ]{1})([а-яё]{2,20})([ ]{1})([А-ЯЁ]{1})([а-яё]{2,20})[^ь]+$/', 'Пупкин Василий Иванович')
Не проходит проверку и все. Мне кажется регулярка плохо относится к кириллице.
Подскажите, что не так?
ps setlocale пробовал, не помогает
 
V

vital

Код:
$fio='Пупкин Василий Иванович';
$fio=explode(' ',$fio);
foreach ($fio as $a) (preg_match('/[а-яА-ЯЁё]+/'),$a);

Это типа инфа к рамзышлению. А не работает ваша регулярка - потому чт там бред.
 
E

etc

потому чт там бред.
особенно тут -
'Пупкин Василий Иванович'
, какой Пупкин Василий Иванович ? Он же Пупкин-Попкин Василий Иванович.


Добавлено: А еще есть и Пупкин-Попкин Василий Иванович ибын ата.
 
E

etc

Да это я не вам, а автору.
Да и я про то, что какой смысл в этой проверке? ну придут 3 слова и что, какой из этого вывод? мне кажется автор странного хочет.
 
A

Alien193

чего странного, есть форма, в которую нужно ввести ФИО, могут ввести бред, должно быть конкретно три слова, Фамилия Имя и Отчество, каждое должно быть начато с заглавной буквы, а главное бесит, когда в конце вставляют мягкий знак.
В общем данная мною регулярка работает прекрасно на JS, там нет никакого бреда.
 
A

Alien193

Видимо никто не сталкивался с подобной проблемой?
 
A

acorn

видимо, никто не хочет за тебя писать регулярку ;)
 
A

Alien193

я не прошу писать регулярку, если вы не видите, она уже готова, она не работает с русскими буквами, что-то с кодировкой не то, я тестил её на php файле с кодировкой utf8, регулярка не работала, чуть ли не убился, а когда файл поменял в кодировку ANSI, то регулярка заработала, а сейчас снова не работает. Так вот я и спрашиваю, может кто сталкивался с подобной проблемой, возможно как-то можно решить проблему принудительным изменением кодировки типа iconv и т.п.
 
A

acorn

Alien193, у меня ваша регулярка работает, так что копайте глубже в сторону настроек сервера и тп.
 
A

Alien193

Я сильно глубоко копать начал, оказывается клад находился на поверхности.
Совершил глупую ошибку, имя переменной не ту поставил :(
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!