Grunt任务 - 从没有扩展名的路径获取文件名

时间:2014-04-24 06:22:49

标签: javascript gruntjs

是否可以从src文件路径获取没有扩展名的文件名。

举个例子,假设src文件是my-file.png - 位于images / my-file.png。

在我的任务中,我现在有这个:

var processName = options.processName || function (name) { return name; };
var filename = processName(filepath);

当我引用filename输出时,它返回:

images/my-file.png

我想只返回实际的文件名,没有路径,没有扩展名:

my-file.png

我怎样才能做到这一点?

3 个答案:

答案 0 :(得分:2)

可能很老,但如果其他人发现这个,那么,回复@ user3143218的评论: slice(0,-4)将从名称中删除最后4个字符,因此对于示例my-file.png,我们将获得my-file,但对于script.js,我们将获得scrip。我建议使用正则表达式删除最后一个点的所有内容。

答案 1 :(得分:1)

您可以使用这样的正则表达式:

var theFile = filename.match(/\/([^/]*)$/)[1];
var onlyName = theFile.substr(0, theFile.lastIndexOf('.')) || theFile;

那应该给你my-file。正则表达式在最后一个正斜杠后给你字符串,下一行删除最后一个点(和点)之后的所有内容。

答案 2 :(得分:0)

感谢Andeersg的回答,我能够解决这个问题。它可能不是最好的解决方案,但它有效。最终代码是:

var processName = options.processName || function (name) { return name; };
var filename = processName(filepath);
var theFile = filename.match(/\/([^/]*)$/)[1];
var onlyName = theFile.slice(0, -4);

现在onlyName将返回:

my-file