Проверка ФИО

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

Alien193

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

vital

Больной Компом Детектед
29.01.2006
2 432
33
#2
Код:
$fio='Пупкин Василий Иванович';
$fio=explode(' ',$fio);
foreach ($fio as $a) (preg_match('/[а-яА-ЯЁё]+/'),$a);
Это типа инфа к рамзышлению. А не работает ваша регулярка - потому чт там бред.
 
E
#3
особенно тут -
'Пупкин Василий Иванович'
, какой Пупкин Василий Иванович ? Он же Пупкин-Попкин Василий Иванович.


Добавлено: А еще есть и Пупкин-Попкин Василий Иванович ибын ата.
 
E
#5
Да это я не вам, а автору.
Да и я про то, что какой смысл в этой проверке? ну придут 3 слова и что, какой из этого вывод? мне кажется автор странного хочет.
 
A

Alien193

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

Alien193

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

Alien193

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

acorn

PHP Developer
29.08.2004
585
3
#12
Alien193, у меня ваша регулярка работает, так что копайте глубже в сторону настроек сервера и тп.
 
A

Alien193

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