2016-05-25 86 views
0

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

例如:

http://www.yeouuuuu.com/bla 
https://www.bbc.co.uk/something 
http://yeou:[email protected]/ 
//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])'); 
+0

向我们展示你是如何对你的投入和什么行不通测试您的正则表达式。 – Bergi

+0

我不同意这个副本。我在写这篇文章之前阅读过这篇文章我想知道我的变量url是由一个DNS名称而不是一个IP地址组成的。 – yeouuu

+0

@yeouuu:副本包含两个正则表达式,一个用于主机名,一个用于IP地址。你应该很容易用这些来得到你的答案。 –

回答

0

此正则表达式让你的测试,如果你的URL由IPv4的网址

let ipv4Url = RegExp([ 
    '^https?:\/\/([a-z0-9\\.\\-_%]+:([a-z0-9\\.\\-_%])[email protected])?', 
    '((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:[email protected]/hello'); 
//returns true 
-1

你可以运行你对window.location.hostname

+1

为什么不呢?这是一个字符串,因此可以针对...... – evolutionxbox

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

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

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

如果它甚至有一个字母,那么它不是一个IP地址。没有?

+0

进行测试是的,但仅仅因为它没有'a-z'字母并不会使其成为IP地址。 – Bergi

+0

Touche。没有想到这一点。 – IMTheNachoMan

相关问题