Задать вопрос

Почему не работает регулярка?

Всем привет. Есть готовая регулярка, для проверки валидности домена и так же в ней есть возможность проверки кириллического домена. Но почему-то вот кириллические домены проверять не хочет.

$url = "http://домен.рус";	
	
if (!preg_match("~^(?:(?:https?|ftp|telnet)://(?:[a-z0-9_-]{1,32}" . "(?::[a-z0-9_-]{1,32})?@)?)?(?:(?:[a-z0-9-]{1,128}\.)+(?:com|net|". "org|mil|edu|arpa|gov|biz|info|рус|media|aero|inc|name|[a-z]{2})|(?!0)(?:(?". "!0[^.]|255)[0-9]{1,3}\.){3}(?!0|255)[0-9]{1,3})(:[0-9]{1,5})?(?:/[а-яa-z0-9.,_@%\(\)\*&amp;". "?+=\~/-]*)?(?:#[^ '\"&amp;<>]*)?$~i", $url)) {
	die("error");
}


Где ошибка? В чем проблема?
  • Вопрос задан
  • 285 просмотров
Подписаться 4 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 2
@Olgeir
не смущает что в [a-z0-9_-] нет русских букв?
Ответ написан
Комментировать
ruFelix
@ruFelix
Предсказание будущего по руке, таро, кофе.
"~regexp~iu" - нужно добавить модификатор u это значит utf8.
и соответственно проверить, что исходник и приходящая на проверку строка в utf8
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы