想简单写个压缩js文件的方法,在使用正则时遇到了问题。
let newStr = str.replace(/(?<!(var|let|const|function))\s/g, '');
该正则在浏览器上正常,但在node.js中就报错
let newStr = str.replace(/(?<!(var|let|const|function))\s/g, '');
^
SyntaxError: Invalid regular expression: /(?<!(var|let|const|function))\s/: Invalid group
at Object.<anonymous> (c:\Users\Administrator\Desktop\test2\test2.js:6:17)
at Module._compile (module.js:573:30)
at Object.Module._extensions..js (module.js:584:10)
at Module.load (module.js:507:32)
at tryModuleLoad (module.js:470:12)
at Function.Module._load (module.js:462:3)
at Function.Module.runMain (module.js:609:10)
at startup (bootstrap_node.js:158:16)
at bootstrap_node.js:598:3
这是 lookbehinds ,js 也不支持,只有 Chrome 支持
那有什么解决方案吗?
@samfung09: 试试通过 — harmony
选项启动 node ,参考 ES6学习--搭建环境
@dudu: 再问个问题,怎么让正则不匹配引号内的字符只匹配引号之外的字符?也就是说带引号的不用管
@samfung09: 建议另开一个问题