如何检查输入的网址是否有效?

时间:2013-10-12 08:22:42

标签: jquery regex url

我想检查输入的网址是否有效。

这是我的代码

var regExpURL = /((http|https):\/\/(\w+:{0,1}\w*@)?(\S+)|)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/;
var websiteURL = $("#txtotherwebsite").val();
if(!regExpURL.test(websiteURL))
{
   $("#errorwebsite")[0].innerHTML = "Invalid website name.";
   $("#txtotherwebsite").removeClass("successTextBox").addClass("errorTextBox");
   return false;
}
else
{
    $("#errorwebsite")[0].innerHTML = "";
    $("#txtotherwebsite").removeClass("errorTextBox").addClass("successTextBox");
    return true;
}
return false;

但是当我使用它时,它只会进入其他地方。 regExpURL.test(websiteURL)始终返回true。

1 个答案:

答案 0 :(得分:-1)

使用以下正则表达式:

(?<Protocol>\w+):\/\/(?<Domain>[\w@][\w.:@]+)\/?[\w\.?=%&=\-@/$,]*

要测试它,请转到:http://regexlib.com/RETester.aspx

放入源文本框:

http://www.usgs.gov
http://www.acl.lanl.gov/URI/archive/uri-archive.index.html
ftp://@host.com/
ftp://host.com/
ftp://foo:@host.com/
ftp://myname@host.dom/%2Fetc/motd
file://vms.host.edu/disk$user/my/notes/note12345.txt
prospero://host.dom//pros/name

戴上正则表达式文本框

(?<Protocol>\w+):\/\/(?<Domain>[\w@][\w.:@]+)\/?[\w\.?=%&=\-@/$,]*

它将匹配以上所有网址

希望它可以帮到你