我想添加後綴.min
到我的文件不在vendor
文件夾中。錯誤匹配替換
let str = '/js/index.js';
let str2 = '/vendor/socket-io/library.js';
let myregex = new RegExp('^([^/vendor]*.*[^min]{3}\\.)([a-z]{1,2}s)', 'g');
let myreplace = '$1min.$2';
console.log(str.replace(myregex, myreplace));
console.log(str2.replace(myregex, myreplace));
中註銷
/js/index.min.js
/vendor/socket-io/library.min.js
出於某種原因,該library.js
匹配,即使我排除在/vendor
:
^([^/vendor]*.* ...
當https://regex101.com/所有檢查出來測試,但JavaScript的不以爲然。
這是需要匹配的列表:
/vendor/bootstrap/css/bootstrap.min.css --> DO NOT MATCH
/vendor/font-awesome/font-awesome.min.css --> DO NOT MATCH
/vendor/jquery/jquery.min.js --> DO NOT MATCH
/vendor/bootstrap/js/bootstrap.min.js --> DO NOT MATCH
/vendor/socket-io/library.js --> DO NOT MATCH
/js/index.js --> MATCH
/css/style.css --> MATCH
/some/other/script.js --> MATCH
爲什麼?
'[^ /供應商]'是**類是_not_'/'中的所有字符的**, v,e,n,d,o或r。 – CBroe
您還沒有將'/ vendor'排除爲*字符序列*。什麼是模式要求? –
@WiktorStribiżew編輯問題 – Moshe