我想添加后缀.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