2012-01-10 8 views
13

はのは、私が持っていると言いましょうか?jQueryを使用してイメージ名を取得するには?どのように私は<code>blue</code>データを得ることができ、</p>のjQueryを使用して <pre><code><img src='static/images/banner/blue.jpg' /> </code></pre> <p>:

$('img').attr('src')を使用すると、URI全体を取得できます。その場合、エクステンションとすべてのパスを削除する最善の方法は何ですか?

答えて

22

ローカルファイルにはパス名にスラッシュ( '\')を使用し、ファイル名の中にはハッシュや検索テールを定義したり、拡張子を持たないものがあります。

String.prototype.filename=function(extension){ 
    var s= this.replace(/\\/g, '/'); 
    s= s.substring(s.lastIndexOf('/')+ 1); 
    return extension? s.replace(/[?#].+$/, ''): s.split('.')[0]; 
} 

console.log($('img').attr('src').filename()); 
9

正規表現は、ここにあなたの親友になります...

var filename = fullUri.replace(/^.*?([^\/]+)\..+?$/, '$1');

+0

、固定します今。 – KOGI

+0

これで完璧です。あなたは '/'をエスケープするのを忘れました。 '(/^.*?([^\/]+)\..+?$/、 '$ 1');' –

6
var src = $('img').attr('src').split('/'); 
var file = src[src.length - 1]; 

+2

あなたははっきりと忘れてしまった拡張子を取り除く... –

1
var src= $('img').attr('src'); 

var name = src.match(/static\/images\/banner\/(.*)\.jpg/)[1]; 
7

は単なる文字列分割動作するはずです:

var src = $('img').attr('src'); // "static/images/banner/blue.jpg" 
var tarr = src.split('/');  // ["static","images","banner","blue.jpg"] 
var file = tarr[tarr.length-1]; // "blue.jpg" 
var data = file.split('.')[0]; // "blue" 
+1

この例が返すちょうど脇役: 'summer.2013.jpg'という画像から' summer'を入力してください –

2
src = $('img').attr('src'); 
src_array = src.split('/'); 
src = src_array[src.length-1]; 
3

は、我々が持っていると言う:ここで

<img src="path/to/awesome/image/foobar.jpg" /> 

たちは、ファイル名を抽出するために何をすべきかです:

Array.prototype.filename = function() { 
    var tmp = this.split('/'); 
    return tmp[tmp.length-1].match(/(.*)\.[\w]+$/)[1]; 
}); 

$('img').attr('src').filename(); 

結果:RokoC.Buljan感謝@

console.log(name); // foobar 
+0

**私はそれをお勧めしません**: 'summer.2013.jpg' ??ファイル名は 'summer'ではなく' summer.2013' –

+0

@ RokoC.Buljanですが、古い質問は更新されました。 – daryl

関連する問題

 関連する問題