Автор Тема: регулярные  (Прочитано 2902 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Croaker

  • Модератор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 927
  • +0/-0
  • 0
    • Просмотр профиля
    • http://alex-files.ru
регулярные
« : 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,}/

что не так?
Не все коту матрица.

Оффлайн Ardzhan

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 205
  • +0/-0
  • 0
    • Просмотр профиля
    • http://ardzhan.km.ru
регулярные
« Ответ #1 : 14 Августа 2002, 18:44:54 »
Лови

$url
="webscript.ru";
if (
preg_match("/^[A-Za-z0-9]+\\.[A-Za-z0-9]{2,4}$/i"$url)){
	
echo 
$url;}

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
регулярные
« Ответ #2 : 14 Августа 2002, 18:44:56 »
Ну, в первый набор я бы добавил точку.
А зачем после {2,4} еще что-то? или ты проверяешь целиком адрес? Но почему тогда нам не могут быть буквы?
Не лучше ли вырезать имя домена и проверять только его?
и оставить /[A-Za-z0-9.]+\\.[A-Za-z]{2,4}/

Оффлайн Ardzhan

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 205
  • +0/-0
  • 0
    • Просмотр профиля
    • http://ardzhan.km.ru
регулярные
« Ответ #3 : 14 Августа 2002, 18:47:15 »
Перед точкой слэш поставь +\\. вместо +.

Оффлайн Croaker

  • Модератор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 927
  • +0/-0
  • 0
    • Просмотр профиля
    • http://alex-files.ru
регулярные
« Ответ #4 : 15 Августа 2002, 13:00:42 »
всем thanx (большой такой)
Не все коту матрица.

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
регулярные
« Ответ #5 : 15 Августа 2002, 16:02:34 »
вообще-то в имени домена разрешены еще как минимум, дефисы...
Так что, ты бы лучше выяснил поточнее, а потом уже пиал проверку...

Оффлайн Ardzhan

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 205
  • +0/-0
  • 0
    • Просмотр профиля
    • http://ardzhan.km.ru
регулярные
« Ответ #6 : 15 Августа 2002, 16:21:02 »
Ну так в чем проблема? Добавляем символ подчеркивания и дефис, даже так:

$url
="webscript.ru";
if (
preg_match("/^[a-z0-9_-]+\\.[a-z0-9]{2,4}$/i"$url)){
    echo 
$url;}

заглавные и строчные можно не дублировать, так как модификатор i делает регулярку к регистру нечувствительной!
вместо +. надо +\\. - форум съедает!
« Последнее редактирование: 15 Августа 2002, 16:38:54 от Ardzhan »

Оффлайн Croaker

  • Модератор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 927
  • +0/-0
  • 0
    • Просмотр профиля
    • http://alex-files.ru
регулярные
« Ответ #7 : 18 Августа 2002, 22:36:20 »
/^[a-z0-9_\\-]{1,}\\.[a-z0-9]{2,4}$/i

или что-то около. Потом занак "_" вроде использовать нельзя, хотя может я и ошибаюсь. На счет знака "-" - согласен, лоханулся, но главная проблема было в знаках начала и конца выражения, за которве всем большое человеческое спасибо.
Не все коту матрица.

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28