Проверка на буквы. Регулярные выражения

dimaan777

Новичок
Помогите пожалуйста сделать проверку на английские буквы с помощью регулярных выражений.
 

tz-lom

Продвинутый новичок
PHP:
if(preg_match('@[A-z]@u',$str)) echo 'Английские буквы есть';
 

craz

Нестандартное звание
перестаньте помагать нубам готовыми советами!!!
 

ArkDoom

Новичок
dimaan777

Подумай ХОТЬ ЧУТОК МОЗГАМИ (для спавки, они в голве). Если буквы это [A-z] ... ТО КАК ПРОВЕРИТЬ ЦИФРЫ?!!!!!!!!!!?!?!!??!!?
 

DiMA

php.spb.ru
Команда форума
> 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}$/',... ))

Только не втирайте мне, что задача проверить на наличие хотя бы одной нужной буквы. В большинстве случаев, естественно, речь о проверке корректности текстового поля целиком.
 
  • Like
Реакции: AmdY

ArkDoom

Новичок
DiMA
Попытка кидания камня в мой огород неудачна. craz в каком-то плане тоже прав.
Человек должен сам прочитать, найти. Тут ему должны дать правильное направление.
А то, что ты сделал за него работу - молодец, хорошая ... ну ты знаешь кто) Только я уверен человек так ничего и не понял.
 

DiMA

php.spb.ru
Команда форума
ArkDoom, извини, но ты воинствующий чайник, который еще твердит всем про книжку (кстати, есть другие книги, на русском). Да, помогать ли новичку - вопрос философский. Но если один чайник ответил другому чайнику бред - это нужно срочно предать анафеме. Иначе наш форум превратиться в сотню других: там столь резко не отвечают, но уровень отвечающих ниже плинтуса. dimaan777 не виноват, он учится программировать, честно признавая "я не понимаю, помогите". Ты же сюда приперся и участвуешь в теме, в которой сам ничего не понимаешь. Это злостный антипаттерн.
 

dimaan777

Новичок
DiMA
спасибо, что помогли :)

craz
ArkDoom
вы профессора походу.. я в РНР уже больше года :), но регулярки не использую так часто (просто не приходятся), потому и попросил помощи.
 

dimaan777

Новичок
PHP:
preg_match('/^[a-zA-Z0-9]+$/',$txt)
А так правильно будет добавить проверку на цифры ?
 
Сверху