Не могу разобраться с регулярными выражениями:( PHP

R
На сайте с 03.08.2012
Offline
131
385

Здравствуйте! Написал код:

$str = "фывфыв";

if(!preg_match("/^[а-яА-Я]{1,20}$/", $str)){echo 1;}
else{
echo 2;
}

Вроде бы все правильно... но чтобы я не указывал в $str, все равно выдает 1.

Подскажите, пожалуйста, в чем может быть проблема.

DiAksID
На сайте с 02.08.2008
Offline
236
#1

для юникода: preg_match('/^[а-яА-Я]{1,20}$/u', $str)

show must go on !!!...
R
На сайте с 03.08.2012
Offline
131
#2

Спасибо! А я уже 2 часа пытаюсь понять почему оно не робит). Ещё вопрос: как написать вместо {1,20}, чтобы было любое число? Вообще эти скобки не ставить?

LEOnidUKG
На сайте с 25.11.2006
Offline
1773
#3

Какая у вас кодировка файла?

Настроены ли у вас локали?

Но чтобы уж точно работало:

<?php

$str = "фывфыв";

if(!preg_match("/^[йцукенгшщзхъфывапролджэячсмитьбюЙЦУКЕНГШЩЗХЪФЫВАПРОЛДЖЭЯЧСМИТЬБЮ]{1,20}$/", $str)){echo 1;}

else{

echo 2;

}

?>

Увы, это русские буквы и с ними нужны танцы с бубном.

✅ Мой Телеграм канал по SEO, оптимизации сайтов и серверов: https://t.me/leonidukgLIVE ✅ Качественное и рабочее размещение SEO статей СНГ и Бурж: https://getmanylinks.ru/ ✅ Настройка и оптимизация серверов https://getmanyspeed.ru/
DiAksID
На сайте с 02.08.2008
Offline
236
#4
LEOnidUKG:
... Увы, это русские буквы и с ними нужны танцы с бубном.

далеко не всегда ;)

revered:
как написать вместо {1,20}, чтобы было любое число?..

тогда + что есть "хотя бы 1 или больше"...

LEOnidUKG
На сайте с 25.11.2006
Offline
1773
#5
DiAksID:
далеко не всегда ;)

Когда есть свой любимый сервер и хостинг, тогда возможно :)

А когда всего много, тогда начинается, тут работает, тут не работает.

DiAksID
На сайте с 02.08.2008
Offline
236
#6
LEOnidUKG:
Когда есть свой любимый сервер и хостинг, тогда возможно :)
А когда всего много, тогда начинается, тут работает, тут не работает.

в принудительно-приказном порядке всех в UTF-8 😂 об остальном забыть...

R
На сайте с 03.08.2012
Offline
131
#7

Спасибо за помощь!

siv1987
На сайте с 02.04.2009
Offline
427
#8

для юникода лучше юзать /\p{L}/u

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий