此 Javascript 代码从文件列表中删除第一个文件名,然后删除其扩展名:
var fileNoExt = filelist.shift();
fileNoExt = fileNoExt.substr(0, fileNoExt.lastIndexOf('.'));
我很好奇 - 是否有可能将此代码变成单行代码?
此 Javascript 代码从文件列表中删除第一个文件名,然后删除其扩展名:
var fileNoExt = filelist.shift();
fileNoExt = fileNoExt.substr(0, fileNoExt.lastIndexOf('.'));
我很好奇 - 是否有可能将此代码变成单行代码?
这是一个单行:
var filelist = ['file.name.ext', 'some.another.string']
filelist.shift().split('.').slice(0, -1).join('.') // 'file.name'
使用正则表达式怎么样?
如果要在 之后强制执行扩展.
,请使用
var fileNoExt = filelist.shift().replace(/\.[^.]+$/, '');
否则,使用
var fileNoExt = filelist.shift().replace(/\.[^.]*$/, '');
第二个匹配my_crazy_file.
,my_crazy_file.extension
而第一个只匹配my_crazy_file.extension
。
“有没有可能把这段代码变成单行代码?”
是的,
var fileNoExt = filelist[0].substr(0, filelist.shift().lastIndexOf('.'));
但为什么?两行更清楚。