Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770 Форумы портала PHP.SU :: Версия для печати :: проверка ника
Доброго времени суток.
Нужно разрешить в нике использовать только латинские буквы люого регистра, цифры, "_" и "-", желательно: последние два символа только в центре.
Пишу следующее выражение, вроде работает допуск латинских був и цифр
Во-первых, используйте preg_match вместо ereg, т.к. в последующих версиях php он будет убран.
Во-вторых, как мне кажется, ваш вариант должен работать, но знаки "_" и "-" экранировать в данном случае не нужно.
Могу посоветовать такую регулярку:
Скобки в регулярке используются как для группировки, так и для указания подмаски. То что попадает в эту подмаску, записывается в массив вхождений, если указать третий параметр в функции preg_match. Чтобы то, что в скобках не учитывалось как подмаска, ее можно отключить, поставив после открывающей скобки ":?". Т.е. группа будет выглядеть так "(:? ...)". В вашем случае на работу функции это никак не повлияет - можно отключить, можно нет. У меня привычка - все, что не используется - отключить! =)
Чтобы то, что в скобках не учитывалось как подмаска, ее можно отключить, поставив после открывающей скобки ":?".
Вообще нужно использовать незапоминающие круглые скобки везде где не требуется сохранять значение в них - это не только помогает очистить массив совпадений от ненужных значений но и экономит ресурсы на создание обратных ссылок