web-dev-qa-db-ja.com

Javascriptを使用してパスからファイル名だけを取得する

私はjqueryを使用して$('img.my_image').attr('src')の形式で画像への完全なパスを持っていますが、ファイル名の部分だけが必要です(パスを破棄します)。

これを行うための組み込み関数はありますか、または正規表現が唯一のオプションでしょうか?

27
DCD
var fileNameIndex = yourstring.lastIndexOf("/") + 1;
var filename = yourstring.substr(fileNameIndex);
45
Gregoire
var Filename= path.split('/').pop()
64
rash
function getFileName(path) {
return path.match(/[-_\w]+[.][\w]+$/i)[0];
}
7
Ali Habibzadeh

UNIXおよびWindowsのようなパス文字列を処理するより良いバージョンが見つかりました。

番号1:

var unix_path = '/tmp/images/cat.jpg';
console.log(unix_path.replace(/^.*[\\\/]/, ''));

var win_path = 'c:\\temp\images\cat.jpg';
console.log(win_path.replace(/^.*[\\\/]/, ''));

出力はcat.jpgになります

数2:(おそらく高速)

var unix_path = '/tmp/images/cat.jpg';
console.log(unix_path.split(/[\\\/]/).pop());

var win_path = 'c:\\temp\images\cat.jpg';
console.log(win_path.split(/[\\\/]/).pop());

出力はcat.jpgになります

5
RubbelDeCatc

Javascriptでできること

function getFileNameFromPath(path) {
  var ary = path.split("/");
  return ary[ary.length - 1];
}
3
Robusto

このソリューションを使用すると、両方の名前を取得できます。つまり、ファイル拡張子の有無にかかわらず取得できます。

 
 //画像ソースの取得
 var path = $( 'img.my_image')。attr( 'src'); 
 
// splitting url and filename with file extension 
 var file = path.split( '/')。pop(); 
 
 //拡張子を削除してファイル名だけを保持する
 var filename = file.split( '。')。shift(); 
 
1
The Bad Brad