我有一个图像的完整路径,我正在使用jquery阅读,形式为$('img.my_image').attr('src')
但是我只想要文件名部分(放弃路径)。从JavaScript路径获取文件名
是否有任何内置函数来做到这一点,或将正则表达式是唯一的选择?
我有一个图像的完整路径,我正在使用jquery阅读,形式为$('img.my_image').attr('src')
但是我只想要文件名部分(放弃路径)。从JavaScript路径获取文件名
是否有任何内置函数来做到这一点,或将正则表达式是唯一的选择?
var fileNameIndex = yourstring.lastIndexOf("/") + 1;
var filename = yourstring.substr(fileNameIndex);
。 – RubbelDeCatc 2015-07-29 07:30:21
如果您需要跨平台解决方案,RubbelDeCatc的答案可以很好地适用于前向和反向。 – user1404617 2017-03-09 15:27:56
function getFileName(path) {
return path.match(/[-_\w]+[.][\w]+$/i)[0];
}
在Javascript中,你可以做
function getFileNameFromPath(path) {
var ary = path.split("/");
return ary[ary.length - 1];
}
我发现了一个更好的版本处理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());
输出将被猫。 jpg
第一种方法会将完整路径连接到单个字符串,而不是用于windows路径的斜杠。 – 2016-02-08 10:54:16
@ManuM当使用字符串文字测试这些时,你必须在你的字符串中使用双反斜杠,比如'var win_path ='c:\\ temp \\ images \\ cat.jpg';'。否则,它们不会被JavaScript解释为反斜杠。 – user1404617 2017-03-09 15:22:17
对不起,我从来没有用windows测试过它,但也许在windows正则表达式中由三条反斜杠(\\\)引起的双重bs问题。 – RubbelDeCatc 2017-05-24 07:24:44
使用此解决方案,您可以同时获得两个名称,即带和不带文件扩展名。
//getting image source var path=$('img.my_image').attr('src'); //splitting url and getting filename with file extension var file=path.split('/').pop(); //removing extension and keeping just the filename var filename=file.split('.').shift();
http://stackoverflow.com/questions/1302306/how-to-pull-the-file-name-from-a-url-using-javascript-jquery/1302339#1302339 – Gregoire 2010-03-26 19:22:33
啊冷静,我做了搜索,但它可能是文件名!=文件名使我找不到它。您需要拆分(\和/);您需要拆分linux和mac的 – DCD 2010-03-26 19:23:42