检查url是否有域名而不是ip

时间:2016-05-25 12:57:25

标签: javascript

如何检查网址是否使用IP地址而不是域名?

例如:

http://www.yeouuuuu.com/bla
https://www.bbc.co.uk/something
http://yeou:password@my.service.com/
//return true;
http://172.10.10.100/test
//return false; because there is an IP.

ip4正则表达式:

ipv4 = RegExp('((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|
  [0-9])\\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])');

4 个答案:

答案 0 :(得分:1)

使用你的正则表达式:

function isIP( address ){ 
    r = RegExp('^http[s]?:\/\/((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])');
    return r.test( address )
}

如果地址不是域名,则返回true。如果URL包含域之后的IP地址,则返回false。

答案 1 :(得分:0)

如果你的网址包含ipv4网址,你可以测试这个正则表达式

let ipv4Url = RegExp([
    '^https?:\/\/([a-z0-9\\.\\-_%]+:([a-z0-9\\.\\-_%])+?@)?',
    '((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\.){3}(25[0-5]|2[0-4',
    '][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])?',
    '(:[0-9]+)?(\/[^\\s]*)?$'
].join(''), 'i');

ipv4Url.test('http://yeou:test@10.10.10.10/hello');
//returns true

答案 2 :(得分:-1)

您可以针对window.location.hostname

运行RegExp

答案 3 :(得分:-1)

为什么不测试window.location.hostname有任何字母?

window.location.hostname.match(/[a-z]/i)

如果它甚至有一个字母,则它不是IP地址。否?