【发布时间】:2019-07-15 19:28:59
【问题描述】:
我正在尝试实现一个正则表达式,该表达式从文件中删除所有调试器,除非该调试器位于...
- 单引号
- 双引号
我有以下适用于双引号的代码,但我不确定如何包含单引号。
var removeDebuggers = (str) => {
str = str.replace(/debugger(?=([^"]*"[^"]*")*[^"]*$)/g, "");
console.log(str)
}
removeDebuggers(`
Here is a 'debugger' in single quotes.
- DOESN'T WORK.
Another "debugger test" but with double quotes.
- WORKS.
"Testing this debugger also."
- WORKS.
My final debugger not in quotes.
- WORKS.
`)
我正在努力的结果是“Here is a 'debugger' in single quotes.”中的调试器也没有被删除。任何不在双引号或单引号内的 debugger 都应保留。
【问题讨论】:
-
不是答案,但为什么
debugger+?这将删除debuggerrrrrrr,我认为这不是你想要的。此外,“任何不在双引号或单引号内的debugger都应单独保留。”应该读作“......应该被删除”。对?你想留下那些是引号的。 -
这不是正则表达式的任务。至少,不是这样。
-
@apsillers 感谢您指出这些。
+在他们之前的尝试中被错误地留下了。我还编辑了最后一行。
标签: javascript regex regex-lookarounds