Я создал решение для проверки домена.Хотя он не охватывает конкретно весь URL, он очень подробный и конкретный.Вопрос, который вам нужно задать себе: «Почему я проверяю домен?»Если необходимо проверить, действительно ли домен может существовать, необходимо подтвердить домен (включая действительные TLD).Проблема в том, что слишком много разработчиков используют ярлык ([az] {2,4}) и называют его хорошим.Если вы думаете так, то зачем называть это валидацией URL?Это не.Он просто передает URL через регулярное выражение.
У меня есть класс с открытым исходным кодом, который позволит вам проверять домен не только с помощью единого источника для управления TLD (iana.org), но также будет проверятьдомен через записи DNS, чтобы убедиться, что он действительно существует.Проверка DNS необязательна, но домен будет определенно действителен в зависимости от TLD.
Например: example.ay НЕ является допустимым доменом, поскольку домен .ay TLD недействителен.Но с использованием регулярного выражения, размещенного здесь ([az] {2,4}), оно пройдет.У меня есть склонность к качеству.Я пытаюсь выразить это в коде, который я пишу.Другие могут не заботиться.Поэтому, если вы хотите просто «проверить» URL, вы можете использовать примеры, приведенные в этих ответах.Если вы действительно хотите проверить домен в URL-адресе, вы можете сделать это в классе, который я создал.Его можно скачать по адресу: http://code.google.com/p/blogchuck/source/browse/trunk/domains.php
Он проверяется на основе RFC, которые «управляют» (используя термин «свободно») тем, что определяет действительный домен.Вкратце, вот что будет делать класс доменов: Основные правила проверки домена
- должны быть длиной не менее одного символа
- должны начинаться с буквы или цифры
- содержит буквы, цифры и дефисы
- должен заканчиваться буквой или цифрой
- может содержать несколько узлов (то есть node1.node2.node3)
- каждый узелдлина может быть не более 63 символов максимум
- общее имя домена может быть длиной не более 255 символов
- должно заканчиваться действительным TLD
- может быть IP4-адресом
Также будет загружена копия основного файла TLD iana.org только после проверки вашей локальной копии.Если ваша локальная копия устарела на 30 дней, она загрузит новую копию.TLD в файле будут использоваться в REGEX для проверки TLD в домене, который вы проверяете.Это препятствует тому, чтобы .ay (и другие недействительные TLD) проходили валидацию.
Это большой кусок кода, но очень компактный с учетом того, что он делает.И это самое точное.Вот почему я задал вопрос ранее.Вы хотите сделать «проверку» или простую «проверку»?