> tz-lom
> if(preg_match('@[A-z]@u',$str)) echo 'Английские буквы есть';
> craz
> перестаньте помагать нубам готовыми советами!!!
> ArkDoom
> Если буквы это [A-z] ... ТО КАК ПРОВЕРИТЬ ЦИФРЫ?!!!!!!!!!!?!?!!??!!?
Вы с дубу рухнули? Какие еще советы? Или 1е апреля продолжается, а я в шутку не въехал? Я в шоке...
1. Дикий бред номер один заключается в том, что в диапазон [A-z] входят не только все большие+маленькие буквы. А еще дополнительные символы: [ ] \ ^ ` _
2. Дикий бред номер два заключается в том, что без привязки к началу и концу строки preg_match("/^ $/", ...) это регулярное выражение не значит вообще ничего:
if(preg_match('@[A-z]@u',"Z убейтесь ап стену")) => TRUE
if(preg_match('@[A-z]@u',"_Z") => TRUE
Найдя хотя бы одну один подходящий символ, вернут правду, а рядом будет sql инъекция.
3. Мы проверяем только английские буквы. Нахрен модификатор 'u' не нужен.
Правильный ответ, если задача "убедиться, что строка состоит только из английских букв" таков:
if (preg_match('/^[a-z]+$/',... ))
if (preg_match('/^[a-zA-Z]+$/',... ))
if (preg_match('/^[a-z]+$/i',... ))
if (preg_match('!^[a-z]{1,10}$/',... ))
Только не втирайте мне, что задача проверить на наличие хотя бы одной нужной буквы. В большинстве случаев, естественно, речь о проверке корректности текстового поля целиком.