[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Регулярка для имени латинскими либо кирилицей
westside_90
Извиняюсь, скорее всего посторюсь, игрался валидацией формы, написал регулярку, чтобы пропускала имена написаные либо кирилицей либо латинскими буквами и обязательно с первой заглавной. Вот что вышло:

$data = array(
'0' => 'adadasfs',
'1' => 'Rpdddlad',
'2' => 'gTlkEf',
'3' => '4gegdgr',
'4' => 'Rftbg543gs',
'5' => 'rt',
'6' => '56',
'7' => 'Апрнек',
'8' => 'dgввпв',
'9' => 'Кdgdtав',
);


for ($i = 0; $i <= 9; $i++) {
if (preg_match('/^([A-Z]{1})([a-z])+|([А-ЯЁ]{1})([а-яё])+$/',$data[$i])) echo $data[$i]."\n";
}


в результате: Rpdddlad Rftbg543gs Апрнек

если беру только первую часть: '/^([A-Z]{1})([a-z])+$/'
результат: Rpdddlad

только вторую:'/^[А-ЯЁ]{1})([а-яё])+$/'
результат: Апрнек


Итого 2 вопроса:
1). А почему при обьединении этих масок проскакивает ещё и Rftbg543gs?
2). Ну и подскажите как проверить лучше на наличие лишь одного слова?



Спустя 8 минут, 51 секунда (17.08.2012 - 15:30) Winston написал(а):
if (preg_match('/^(?:[A-Z][a-z]+|[А-ЯЁ][а-яё]+)$/u',$data[$i])) echo $data[$i]."\n";

Для юникода нужно мод. u использовать

Спустя 2 минуты, 50 секунд (17.08.2012 - 15:33) westside_90 написал(а):
допустим для юникода прокатит, а если у меня всё под CP1251?

Спустя 33 секунды (17.08.2012 - 15:33) Winston написал(а):
Значит убрать u

Спустя 3 минуты, 24 секунды (17.08.2012 - 15:37) westside_90 написал(а):
ну собственно так и сделал, всё получилось, огромное спасибо)

Спустя 1 минута, 19 секунд (17.08.2012 - 15:38) killer8080 написал(а):
'/^([A-Z]{1}[a-z]+|[А-ЯЁ]{1}[а-яё]+)$/u'

Спустя 21 минута, 42 секунды (17.08.2012 - 16:00) westside_90 написал(а):
к сожалению для валидации поля в Drupal 7 не подошло... латинские имена пускает, кирилицу нет, на модификатор u говорит:

preg_match() [function.preg-match]: Compilation failed: invalid UTF-8 string at offset

Спустя 9 минут, 23 секунды (17.08.2012 - 16:09) killer8080 написал(а):
westside_90
похоже кодировка, в которой сохранен файл, не совпадает с кодировкой страницы (входных данных)

Спустя 3 минуты, 45 секунд (17.08.2012 - 16:13) westside_90 написал(а):
ну это врятли, сраница создана модулем (хук_меню), кодировку не менял, даже незнаю как задать именно UTF-8 для страницы, но сомневаюсь что проблема в этом

Спустя 3 минуты, 51 секунда (17.08.2012 - 16:17) killer8080 написал(а):
Цитата (westside_90 @ 17.08.2012 - 17:13)
ну это врятли, сраница создана модулем (хук_меню)

То есть ты даже не знаешь, в какой кодировке у тебя файл, но уверен что в этом проблемы быть не может biggrin.gif

Спустя 5 минут, 13 секунд (17.08.2012 - 16:22) westside_90 написал(а):
какой файл? нету файла, есть страница, потому и говорю, что проблема не в кодировке

Спустя 2 минуты, 40 секунд (17.08.2012 - 16:25) killer8080 написал(а):
Цитата (westside_90 @ 17.08.2012 - 17:22)
какой файл? нету файла, есть страница, потому и говорю, что проблема не в кодировке


Ну да, а регулярка у тебя где? В воздухе? smile.gif

Спустя 8 минут, 56 секунд (17.08.2012 - 16:34) westside_90 написал(а):
Признаю, проглядел, модуль был в ANSI сохранён, перекодировал, помогло, респект за настойчивойсть, а то я как-то сразу это отбросил).

Тогда вариант Winston'a идеален)
А скипт тестировал под CP1251, нужно как-то найти общий знаменатель)))
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.