[英]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.