簡體   English   中英

Grunt Task-從沒有擴展名的路徑獲取文件名

[英]Grunt Task - Get Filename from path without extension

是否可以從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

我該如何實現?

可能已經很老了,但是如果有人發現了這個,請回復@ user3143218的注釋:slice(0,-4)將從名稱中刪除最后4個字符,因此對於示例my-file.png我們將獲取my-file但是對於script.js我們將獲取scrip 我建議使用正則表達式刪除最后一個點中的所有內容。

您可以使用以下正則表達式:

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

那應該給你my-file 正則表達式為您提供最后一個正斜杠之后的字符串,而下一行將刪除最后一個點(和該點)之后的所有內容。

多虧了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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM