2016-03-29 5 views
0

Javaスクリプト(またはPHP)を使用して検証またはフィルタする方法トップレベルのURL /ドメインのみ? そして、それは、たとえば、新しいドメイン拡張子を受け入れることがあります。最上位URLフォームの検証

これは正しいです: http://www.something.bid 等...

と、これは正しくありません: http://www.example1.com/blahblah/etc/something/index.php 等...

また、サブドメイン - 許可されていません!

入力フォームにJavaスクリプトまたはPHPで検証されます。 多くの感謝!

+0

:-)これは有効な "TLD" ドメインである、なぜその正しいません。 http://www.example1.com/blahblah/etc/something/index.php – Ibrahim

+0

@Ibrahim私はサブドメインやdomain.com/slash/something.htmlサイトを私のリストに受け入れたくないので、 'thisisfine.com'や 'www.thisisfine.com'や 'http:/ /thisisfine.com'のようなフルレベルのドメインで、http://www.example1.com/blahblah/etc/something/indexのようなものは一切ありません。 phpまたはhttp://www.example2.com/index.phpなど –

+0

@Ibrahimまた、前には何もありません(サブドメインなし!)。 –

答えて

0

OK、 TLDの意味:.com.org.net等...

サブドメイン手段:www.NAMEdev.DOMAIN_NAME、等...

SO URLがwww.something.bdを修飾[SUB_DOMAIN].domain_name.[TLD]/[Extra URL PATH|QUERY_PARAMS]

IS 、wwwはサブドメインです。おそらくwwwサブドメインの例外を作成したいと考えています。

使用するURLと一致するように、この正規表現、 /(https?:\/\/)?(([0-9a-z\_-]+)\.)?([a-z0-9\_-]+)\.([a-z]{2,})\/?(\/.+)?/

サンプル

var matches = 'http://www.something.bid'.match(/(https?:\/\/)?(([0-9a-z\_-]+)\.)?([a-z0-9\_-]+)\.([a-z]{2,})\/?(\/.+)?/) 

結果

[ "http://www.something.bid"、 "HTTP://"、「WWW。 "、" www "、" something "、" bid "、undefined]

matches[3] == sub-domain 
matches[4] == domain 
matches[5] == tld name 
matches[6] == rest path 

ここで、サブドメインが空であるか特定の値であるかを確認できるようになりました。

function checkUrl(url){ 
 
    var regx = /(https?:\/\/)?(([0-9a-z\_-]+)\.)?([a-z0-9\_-]+)\.([a-z]{2,})\/?(.+)?/; 
 
    var matches = url.match(regx); 
 

 
    if (matches.length == 7 
 
     && (!matches[3] || matches[3] == 'www') 
 
     && matches[4] 
 
     && matches[5] 
 
     && !matches[6]) 
 
    return true; 
 

 
    return false; 
 
} 
 

 

 
alert(checkUrl("http://something.bid/")); 
 

 
alert(checkUrl("http://www.example1.com/blahblah/etc/something/index.php"));

コーディングハッピー...

+0

hm。 「http://www.something.bid」のような1つのURLには影響しないが、すべての可能性がある(ユーザーはURLを追加する必要があるため)代替方法が必要なようだ。とにかくありがとう。 –