Может кто-нибудь помочь мне с этим JavaScript для проверки URL в ASPX? - PullRequest
2 голосов
/ 18 июня 2010

Вот мой код -

  function Validate_URL(url) {
      var iurl = url.value;
      var v = new RegExp();
      v.compile("/^(((ht|f){1}(tp:[/][/]){1})|((www.){1}))[-a-zA-Z0-9@:%_\+.~#?&//=]+$/;");
      if (!v.test(iurl.value)) {
          url.style.backgroundColor = 'yellow';
      }
      return true; 
  }

независимо от того, что я вставил в URL, скажем http://www.abc.com/newpage.html,, он возвращает false. как получилось?

1 Ответ

4 голосов
/ 18 июня 2010

Когда вы используете конструктор, вы не включаете начало и конец /. В этом случае вы не используете динамические строки, поэтому вы можете использовать литерал регулярного выражения JavaScript.

Таким образом, лучше сделать что-то вроде:

var v = /pattern/;

{1} всегда избыточен, как и классы символов, когда у вас есть только один элемент. . необходимо экранировать вне классов персонажей. Там нет причин для особого случая www. Это всего лишь один из возможных поддоменов. Я не знаю, почему у вас есть двойной / в классе персонажей. Есть и другие проблемы, такие как разрешение @ и # везде. Вам не нужно бежать + внутри класса персонажа. У вас также есть беспорядочная точка с запятой в конце.

Есть множество других вопросов по этому поводу, включая Какое регулярное выражение лучше всего проверить, является ли строка действительным URL-адресом , Проверка правильности URL-адреса с использованием регулярных выражений Javascript и проверка URL с использованием JavaScript .

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