Помогите мне проверить URL, который должен принимать домены .me - PullRequest
2 голосов
/ 17 марта 2011
var tomatch= /http:\/\/[A-Za-z0-9\.-]{3,}\.[A-Za-z]{3}/
     if (tomatch.test(theurl))
     {
         window.alert("URL OK.");
         return true;
     }

Я пытался использовать этот код регулярного выражения для проверки URL.

Когда я пытаюсь проверить его с помощью http://about.me, отображается ошибка

Ответы [ 4 ]

1 голос
/ 17 марта 2011

Просто добавьте к тому, что уже сказали другие:

Добавьте ^ в начале и $ в конце, иначе все будет успешно, даже если оно соответствует только части вашей строки - и есливы тестируете только часть своего ввода, тогда вы не выполняете правильную проверку.

Другое дело - разрешить HTTPS URL.

Также не забудьте о дополнительном порте.

И путь!

И строка запроса.

И часть хеша.

Может быть, вы можете обойтись без базового пользователя аутентификации и пароля, нотехнически это может быть там.

Проверка URL-адреса намного сложнее, чем может показаться.Я бы даже не попытался написать это регулярное выражение.Возможно попробуйте Regex Library , найдите старые вопросы здесь или Google: подтверждение URL javascript .

1 голос
/ 17 марта 2011

Просто измените {3} tp {2,3}

var tomatch= /http:\/\/[A-Za-z0-9\.-]{3,}\.[A-Za-z]{2,3}/

Но поймите, что Regex работает следующим образом:

http://test.meandmoretext
***************

Знак *, где RegExсоответствует, поэтому он возвращает «URL OK», даже если у вас есть намного больше текста после соответствия.Если вам нужно полное совпадение

var tomatch= /^http:\/\/[A-Za-z0-9\.-]{3,}\.[A-Za-z]{2,3}$/

, но также следует понимать, что TLD могут содержать до 6 символов .

1 голос
/ 17 марта 2011

Замените \.[A-Za-z]{3} на \.[A-Za-z]{2,}, поэтому для него требуется не менее 2 символов TLD, но также допускается больше (например, .info, .museum и т. Д.!)

Вам также необходимо разрешить доменные имена из одного символа. Некоторые реестры разрешают их (например, DENIC / .de)!

0 голосов
/ 17 марта 2011

Последняя часть регулярного выражения [A-Za-z]{3} означает соответствие всем алфавитам {3} означает, что должно иметь 3 символа.

измените его на {2,}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...