2016-05-25 5 views
0

ドメイン名の代わりにIPアドレスでURLが作成されているかどうかを確認するにはどうすればよいですか?例えばURLにドメイン名があり、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がIPアドレスではなくDNS名で構成されているかどうかを知りたい。 – yeouuu

+0

@yeouuu:複製には、ホスト名用とIPアドレス用の2つの正規表現が含まれています。答えを得るためにこれらを使用するのはかなり簡単です。 –

答えて

0

あなたのURLがIPv4のURL

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) 
} 

が真アドレスはドメイン名ではありません。 URLの後ろにIPアドレスがある場合、falseを返します。

-1

window.location.hostnameのテストには何も手紙がありませんか?

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

文字が1つでもあれば、IPアドレスではありません。いいえ?

+0

はい、しかし 'a-z'文字を持たないので、それはIPアドレスになりません。 – Bergi

+0

Touche。それについて考えなかった。 – IMTheNachoMan

関連する問題