vers={jquery:"2.1.1"};
...
.pipe(replace(/src=".*\/(.*).js"/g, 'src="js/$1.min.js?ver='+vers["$1"]+'"'))
...
爲什麼'... src =「js/jquery.min.js?ver = undefined」...'?以及如何正確制定?如何在正則表達式中使用變量'object'?
vers={jquery:"2.1.1"};
...
.pipe(replace(/src=".*\/(.*).js"/g, 'src="js/$1.min.js?ver='+vers["$1"]+'"'))
...
爲什麼'... src =「js/jquery.min.js?ver = undefined」...'?以及如何正確制定?如何在正則表達式中使用變量'object'?
它失敗了,因爲你確實傳入了$ 1,而不是字符串值。您需要使用功能
str.replace(YourRegExp, function(fullmatch, group1) { return 'src="js/' + group1 + '.min.js?ver='+vers[group1]+'"'; });
表達式'src="js/$1.min.js?ver='+vers["$1"]+'"'
在之前被評估爲它被傳遞到replace
。因此,"$1"
沒有特殊含義,並被視爲該文字字符串。這意味着您正在嘗試解析vers
對象的"$1"
,因此獲得undefined
。
replace
可以將其作爲第二個參數,您可以使用它在運行時識別正確的vers
值,並根據需要替換它。
thanx。 '.pipe(replace(/ href =「。* \ /(。*).css」/ g,function(fullmath,group1){return'src =「css /'+ group1 +'.min.css?ver =' + vers [group1] +''';}))'正常工作 – askovpen