[英]Regex match all characters except “.js”
我正在嘗試使用javascript將模塊名稱與其路徑分開。 我正在接收正則表達式的字符串的末尾可能帶有“ .js”,也可能沒有,但是在第二個匹配組中,如果那里存在“ .js”,則不需要。 到目前為止,這是正則表達式:
([\.\/]?.+\/)?(.+[\.js]?)
例如,如果我有字符串:./piechart.js
比賽組1:./
比賽組2:餅圖
更多測試/示例: https : //regex101.com/r/nL9lK3/1
我建議先過濾字符串,然后對其進行正則表達式以檢索模塊名稱。
function getModule (filePath) {
var arr = filePath.split('/');
var len = arr.length;
var path = arr.splice(0, arr.length - 1).join('/');
var moduleName = arr[0].match(/([a-zA-Z\-\_]+)(?=(\.js)?)/gi)[0];
return [path, moduleName];
}
此函數將返回path
和moduleName
的數組。
所以試試這個
(\\/?.+\\/)*(.+?)(\\.js)?$
並僅使用前兩個匹配的組(這是更新的regex101 )。
第一組: (\\/?.+\\/)*
匹配所有可能的路徑,以最后一個斜杠結束。
第二組: (.+?)
匹配路徑中的所有內容,但帶有一個惰性量詞,如果可以的話,允許第三組進行匹配。
第三組: (\\.js)?
在字符串末尾匹配可能的.js
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.