正则表达主机地址?

时间:2010-09-16 12:25:39

标签: javascript regex url

我想要javascript的正则表达式来验证主机地址,如

http://192.168.10.10:8089/
and
www.abc.com
and 
www.abc.com.aa

3 个答案:

答案 0 :(得分:1)

您是否曾尝试在Regular Expression Library找到它?

答案 1 :(得分:1)

这会将有效的数字IP地址放在$1

/(\bhttp:\/\/(?:\d{1,2}\.|1\d\d\.|2[0-4]\d\.|25[0-5]\.){3}(?:1?\d?\d|2[0-4]\d|25[0-5])\b(?::\d{1,5})?)/

如果您不关心验证,可以使用\d{1,3}\。对于句点之前的数字和最后一个的\d{1,3}。这会跑得更快。

对于“www”网址,这会将网址放在$1中:

/(www\.\w+\.\w{3}(?:\.\w{2})?)\b/

我在这里使用文档:

  

https://developer.mozilla.org/en-US/docs/JavaScript/Guide/Regular_Expressions

答案 2 :(得分:0)

这段代码会分解网址

var fields = url.match( /(.*)[:/]{3}([^:/]+)[:]?([^/]*)([^?]*)[?]?(.*)/ );
if(fields === null){
    throw new Error('bar url');
}
var protocol = fields[1];
var host = fields[2];
var port = fields[3];
var path = fields[4];
var query = fields[5];

因此,如果你进入if,意味着url是一个糟糕的组合URL

希望有所帮助