Forum Webscript.Ru
Программирование => PHP => Тема начата: Croaker от 14 Августа 2002, 18:07:46
-
Народ! Регулярное выражение, которое должно проверять слово, на соответствие любому доменному имени без http://www. (aka webscript.ru)
/[A-Za-z0-9]{1,}\\.[A-Za-z]{2,4}[^A-Za-z0-9]{1,}/
что не так?
-
Лови
$url="webscript.ru";
if (preg_match("/^[A-Za-z0-9]+\\.[A-Za-z0-9]{2,4}$/i", $url)){
echo $url;}
-
Ну, в первый набор я бы добавил точку.
А зачем после {2,4} еще что-то? или ты проверяешь целиком адрес? Но почему тогда нам не могут быть буквы?
Не лучше ли вырезать имя домена и проверять только его?
и оставить /[A-Za-z0-9.]+\\.[A-Za-z]{2,4}/
-
Перед точкой слэш поставь +\\. вместо +.
-
всем thanx (большой такой)
-
вообще-то в имени домена разрешены еще как минимум, дефисы...
Так что, ты бы лучше выяснил поточнее, а потом уже пиал проверку...
-
Ну так в чем проблема? Добавляем символ подчеркивания и дефис, даже так:
$url="webscript.ru";
if (preg_match("/^[a-z0-9_-]+\\.[a-z0-9]{2,4}$/i", $url)){
echo $url;}
заглавные и строчные можно не дублировать, так как модификатор i делает регулярку к регистру нечувствительной!
вместо +. надо +\\. - форум съедает!
-
/^[a-z0-9_\\-]{1,}\\.[a-z0-9]{2,4}$/i
или что-то около. Потом занак "_" вроде использовать нельзя, хотя может я и ошибаюсь. На счет знака "-" - согласен, лоханулся, но главная проблема было в знаках начала и конца выражения, за которве всем большое человеческое спасибо.