2011-07-13 10 views
-3

は、正規表現によるを検証するためにどのようにこれらのURL:regexpは

http://123.12.12.124:1234/default.html 
http://www.mysite.com 
http://www.mysite.com/ 
https://www.mysite.com 
anyProtocol://www.mysite.com 
www.mysite.com 
mysite.com 

http://www.my.site.com/default.aspx 
http://www.my.site.com/default 
http://www.my.site.com/default/ 
anyProtocol://www.my.site.com/default.anyExtension 

http://www.my.site.com 
anyProtocol://www.my.site.com/ 
https://www.my.site.com 
www.my.site.com 
my.site.com 
+0

あなたは何を試しましたか?正規表現のどの部分に問題がありますか? –

+0

それは完全に正規表現 – Alexandre

+0

うん。あなたは自分のためにスタートをしなければなりませんか?あなたの問題を完全に解決するためのものではありません。私たちはあなたの特定の問題に対する答えを見つけるのを手伝っています。下のMarthinのようなあなたを導くことは非常にうれしいですが、ソリューション全体を書くだけの人はほとんどいません。 –

答えて

0

あなたが構築しようとしている場合は、あなたの.NETで独自のURL書き換えエンジンを使用している場合は、既に電子メールを使用することを強くお勧めしますxisting製品。私は単純にそのEXAKTをチェックします

http://123.12.12.124:1234/default.html

:リンケは、IIS 7で

を内蔵しかし、あなたはactuellyをチェックするために必要なものにそれ以外の場合は、ここで少しヒント一致。

http://www.mysite.com http://www.mysite.com/ https://www.mysite.com anyProtocol://www.mysite.com www.mysite.com mysite.com

あなたはanyprotocolとだけでも、個人用サイトを言うので、 .comその後、私はmysite.comがurlにあることを確認し、それはdosntがurlの後に "/"を多く持っていることを確認します。

http://www.my.site.com/default.aspx http://www.my.site.com/default http://www.my.site.com/default/ anyProtocol://www.my.site.com/default.anyExtension

http://www.my.site.com anyProtocol://www.my .site.com/ https://www.my.site.com www.my.site.com my.site.comここ

あなただけのURLが含まれている私の "my.site.com" とも(0を追加していることを確認する必要があり、あなたが拡張機能に注意を払う必要はないので、1) "default"の出現。

1

URLを自分で検証するのではなく、System.Uriクラスをご覧ください。無効なアドレスを持つUriを作成しようとすると、UriFormatExceptionが投げられるはずです。クイック例は:スキーム(http://部分)が含まれていない場合、それが有効なURIではありませんようにもかかわらずあなたが入力されたURLが正気最初に作ってみる必要がありますので、

var valid = false; 
try { 
    new Uri(someUrl); 
    valid = true; 
} 
catch (UriFormatException) {} 

これは、無効になります。

+0

これをクライアント側で行う方法は?新しいSystem.Uriはサーバー側で実行されます。 – Alexandre

+0

@Alex、質問を編集してこの新しい情報を追加してください。それは最初からあったはずです。=) –

+0

これはあなたの質問では言わなかったので、JavaScriptで解決策を探しているはずです。サーバサイドサービス( 'System.Uri'を使用)を使用して、クライアント側のURIを検証することができます。それを試して、さらに助けが必要な場合は新しい質問をしてください。 –