画像URLを確認して、URLがこれらの拡張子の画像であるかどうかを確認する必要があります: - jpeg、jpg、gif、png。例: - このURLを確認すると、http://www.example.com/asdf.jpgは本当の価値をもたらし、http://www.example.com/asdf.phpのようなURLでfalseを返すべきです。どのように私たちはjavascriptでこれを行うことができますまた、私はURLのコンテンツの種類を確認したい。そのURLがイメージなのかどうかはわかりますJavascript Image URL verify
答えて
このような正規表現を使用すると、ファイルの拡張子を確認できます。
function checkURL(url) {
return(url.match(/\.(jpeg|jpg|gif|png)$/) != null);
}
これらの4つの内線のいずれかでURLが終了するかどうかを確認します。
ウェブページのドメイン外でajaxを使用できないため、クライアントのjavascriptから、ウェブページと同じドメインにないコンテンツタイプを確認する方法はわかりません。私が知る限り、URLをサーバープロセスに送ってイメージをダウンロードし、コンテンツタイプを取得して返すようにしてください。
しかし、あなたがイメージタグは次のように関数を使用してURLをロードできるかどうかを確認することができます
function testImage(url, callback, timeout) {
timeout = timeout || 5000;
var timedOut = false, timer;
var img = new Image();
img.onerror = img.onabort = function() {
if (!timedOut) {
clearTimeout(timer);
callback(url, "error");
}
};
img.onload = function() {
if (!timedOut) {
clearTimeout(timer);
callback(url, "success");
}
};
img.src = url;
timer = setTimeout(function() {
timedOut = true;
// reset .src to invalid URL so it stops previous
// loading, but doesn't trigger new load
img.src = "//!!!!/test.jpg";
callback(url, "timeout");
}, timeout);
}
この関数は2つの引数をいくつかの将来の時点で、あなたのコールバックを呼び出します:元のURLを結果(「成功」、「エラー」または「タイムアウト」)が含まれます。あなたは、いくつかのURLでこの作品を見ることができ、いくつかの良い、いくつかここでは、悪い:
function testImage(url, timeoutT) {
return new Promise(function (resolve, reject) {
var timeout = timeoutT || 5000;
var timer, img = new Image();
img.onerror = img.onabort = function() {
clearTimeout(timer);
reject("error");
};
img.onload = function() {
clearTimeout(timer);
resolve("success");
};
timer = setTimeout(function() {
// reset .src to invalid URL so it stops previous
// loading, but doesn't trigger new load
img.src = "//!!!!/test.jpg";
reject("timeout");
}, timeout);
img.src = url;
});
}
:これは今、約束の時代であるから、
http://jsfiddle.net/jfriend00/qKtra/
そして、ここでの約束を返すバージョンです
jsFiddleデモ:http://jsfiddle.net/jfriend00/vhtzghkd/
ご協力いただきありがとうございます。この関数は機能しますが、URLのコンテンツタイプを確認するにはどうすればよいですか。私は、最初のステップは、URLの拡張子をチェックすることであり、私はURLのコンテンツの種類を確認するための第2ステップを追加することで、より安全なものにしたいと考えています。 –
大丈夫です。人がhttp://www.example.com/asdf.php.jpgのようなPHPファイルのURLを入力した場合、私たちの関数がtrueを返すため、どのようにfalse値を返すことができますか? –
@ JohnPreston - 私はあなたの答えにURLをテストできる2つの方法を追加しました。 1つは、URLをサーバーに送り、コンテンツタイプをテストすることです。 2つ目は、コードを実行してイメージタグにロードし、成功したかどうかを確認することです。 – jfriend00
文字列はあなたがInArrayバリメソッドを使用することができますextenstions、
function checkUrl(url){
var arr = [ "jpeg", "jpg", "gif", "png" ];
var ext = url.substring(url.lastIndexOf(".")+1);
if($.inArray(ext,arr)){
alert("valid url");
return true;
}
}
が編集することを含んでいるかどうかを確認するために... ContentTypeををチェックする
$.ajax{
type: "HEAD",
url : "urlValue",
success: function(message,text,response){
if(response.getResponseHeader('Content-Type').indexOf("image")!=-1){
alert("image");
}
}
}
をHEAD HTTPリクエストメソッドを使用します。更新タイプミス
これらの両方ともjQueryを使用し、OPはjQueryの質問にタグを付けませんでした。 – jfriend00
lasIndexOf - > lastIndexOf –
CORSが有効でない限り、Ajaxソリューションは面白いですが、クロスサイトリクエストでは機能しません –
- 1. Javascript image loader
- 2. Wicket Dynamic Image URL
- 3. image Url to base64encode?
- 4. Javascript Image onloadイベントバインディング
- 5. javascript onload image!complete
- 6. Image JavaScript In Alert
- 7. Javascript/jQuery image rotator
- 8. MVC3 javascript image issue
- 9. Javascript/JQuery Image Cutter
- 10. Javascript image slider
- 11. javascript image rotator問題
- 12. java webapp uploaded imageアクセスURL
- 13. preg_replace image src with full url
- 14. javascript image load threadとイベントハンドラスレッド
- 15. image onLoad関数on IPAD javascript
- 16. javascript onclick events on image points
- 17. 15 puzzle background image JavaScript/CSS
- 18. IISが解決できないImage URL
- 19. url-loader、file-loader、image-loaderの相違点
- 20. 2 Javascript Image-Objectに関する質問
- 21. コントローラで `verify`メソッドを使う方法は?
- 22. javascript regex url replacement
- 23. Javascript/image電子メール難読化対策
- 24. Image onclick画像をダウンロードするjavascript/jquery
- 25. Loading Imageの表示でIframeのURLを更新する方法
- 26. ページURL - Javascriptを
- 27. Javascript to validate URL
- 28. javascript - カスタムURLパターン
- 29. URLリダイレクトJavascript
- 30. URLのJavaScript
したがって、文字列**のURL **が正しい拡張子で終わるかどうか確認したいですか?それからあなたはまた、イメージの内容を読んでみたいですか? – gideon
@gideonはい正しい拡張子の文字列が必要ですが、これは大丈夫かどうかわからないので、URLのコンテンツタイプを確認したいのです –
この質問に3つの部分が含まれていますか、それが有効なURLであることを確認してください?イメージの拡張子であることを確認しますか?イメージの内容を確認しますか? –