2016-05-25 85 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

相關問題