是否有一种方法,我可以得到的最后一个值(基于'\'符号)从一个完整的路径?
例子:
C:\Documents and Settings\img\recycled log.jpg
在这种情况下,我只想从JavaScript的完整路径中回收log.jpg。
是否有一种方法,我可以得到的最后一个值(基于'\'符号)从一个完整的路径?
例子:
C:\Documents and Settings\img\recycled log.jpg
在这种情况下,我只想从JavaScript的完整路径中回收log.jpg。
当前回答
在Node.js中,你可以使用Path的解析模块…
var path = require('path');
var file = '/home/user/dir/file.txt';
var filename = path.parse(file).base;
//=> 'file.txt'
其他回答
为了提高性能,我测试了这里给出的所有答案:
var substringTest = function (str) {
return str.substring(str.lastIndexOf('/')+1);
}
var replaceTest = function (str) {
return str.replace(/^.*(\\|\/|\:)/, '');
}
var execTest = function (str) {
return /([^\\]+)$/.exec(str)[1];
}
var splitTest = function (str) {
return str.split('\\').pop().split('/').pop();
}
substringTest took 0.09508600000000023ms
replaceTest took 0.049203000000000004ms
execTest took 0.04859899999999939ms
splitTest took 0.02505500000000005ms
最后的赢家是“分拆式”答案,感谢波波斯!
var filename = fullPath.replace(/^.*[\\\/]/, '')
这将处理两个\ OR / in路径
在Node.js中,你可以使用路径。basename方法
const path = require('path');
const file = '/home/user/dir/file.txt';
const filename = path.basename(file);
//=> 'file.txt'
我使用:
var lastPart = path.replace(/\\$/,'').split('\\').pop();
它取代了最后一个\,所以它也适用于文件夹。
下面这行JavaScript代码将提供文件名。
var z = location.pathname.substring(location.pathname.lastIndexOf('/')+1);
alert(z);