2009-09-14 5 views

答えて

2

でこのテキストボックスを検証することができますどのようにブログが扱うようないくつかのURL値を持つテキストボックスまたはサイトのアドレス を検証するための基本的な正規表現のテストを実行します。フォーマット。次に、XMLHttpRequestを使用してURLにpingを実行して、URLが存在することを確認します。 jQueryの...

var url = $("#txtUserWebSite").val(); 
var reg = /^(([\w]+:)?\/\/)?(([\d\w]|%[a-fA-f\d]{2,2})+(:([\d\w]|%[a-fA-f\d]{2,2})+)[email protected])?([\d\w][-\d\w]{0,253}[\d\w]\.)+[\w]{2,4}(:[\d]+)?(\/([,-+_~.\d\w]|%[a-fA-f\d]{2,2})*)*(\?(&?([,-+_~.\d\w]|%[a-fA-f\d]{2,2})=?)*)?(#([,-+_~.\d\w]|%[a-fA-f\d]{2,2})*)?$/; 

if(!reg.test(url)) { 
    alert("Invalid URL!"); 
    return false; 
} 

$.get(url, function(dat, stat) { 
    if(stat == "success") 
    alert("Valid URL!"); 
    else 
    alert("Invalid URL!"); 
}) 
10

を使用した例では、私はあなたがJavaScriptで<input>の値を取得する方法を知っていることを、前提としています。だからあなたの問題は、URLを検証するための特定の関数を書くことです。

まず、は、URLが構文上正しいことを確認すると考えられます。

http://www.example.com. 
http://www.google.ee/search?q=foo&sourceid=opera&ie=utf-8&oe=utf-8 
https://ama-z-on.co.uk/index.html?a=hei%20hoo 
ftp://ftp.linux.ee/public/gentoo/i386/portage-snapshot.tar.bz 
http://he.wikipedia.org/wiki/שטרגליים#.D7.A8.D7.90.D7.95_.D7.92.D7.9D 
sftp://123.1.255.128:80/pub 

そして、それは、URL-sの可能性の本当の様々なごく一部です:私たちのURLのバリデータは間違いなくOKを考慮すべきであることを

いくつかの例では、。また、URLで可能なプロトコルはHTTPとFTPだけではありません。ああ、URL検証は本当に難しいです。

しかし、有効なURLはいくつかの文字で始まり、次に "://"で始まり、それ以降は何かで始まると仮定してください。

function validateUrl(url) { 
    return /^[a-z]+:\/\//i.test(url); 
} 

正規表現は、あなたが自分で学習を検討したが、ここだけの簡単な説明すべきであること、全体の大きな話題です:あなたはこのようになりますJavaScriptで正規表現を使用するパターンのようなものをテストするには

  • / - 正規表現
  • ^の開始 - 文字列
  • [a-z]
  • の始まりと一致する - のいずれか、B、C、...、X、Y、またはZに一致します。
  • + - 前のパターンを1回以上繰り返すことができることを意味します。
  • : - コロン記号自体に一致します。
  • \/ - 前方スラッシュ/にマッチします(バックスラッシュなしでJavaScriptは正規表現の終わりだと思います)。
  • / - 正規表現を終了します。
  • i - これは修飾子です。この正規表現は大文字と小文字を区別しません。
  • .test(url) - urlの正規表現オブジェクトのメソッドをパラメータとしてtestを呼び出します。パラメータが正規表現に一致すると、true、それ以外の場合はfalseが返されます。

また、http://の部分がないURLを入力することもできます。つまり、実際にドメイン名やIPアドレスなどの後ろにあるものを検証する必要があります。

私は今あなたがかなり混乱していると思います、それは意図的です。 URL検証を自分で行うためにJavaScriptを書くべきではありません。代わりに、ライブラリ関数を使用する必要があります。これは、多くの専門家によってテストされ、正しいことが確認されています。

多分あなたが使用しているJavaScriptの不正行為は、すでにその仕事のための良いツールを持っています。その場合は使用してください。残念ながら、私はURL検証のための特定のライブラリを具体的に提案することはできません。

また、実際に存在することを確認するために、というURLをpingしてJosh Stodolaが提案したと考えてもよいでしょう。ジョシュが提案する特定の方法は、ケース内の問題であるかもしれない、が、URLで参照されるリソースは、10ギガバイトのファイル:)検証のすべての種類のための正規表現の大きなリポジトリを持ってい

関連する問題