记 RegExp 字面量形式在 eval 及 new Function里的行为异常问题
首先看一下最简单的代码
1 | const r = /^(\d{4})-(\d{1,2})-(\d{1,2})$/; |
上面这段代码在 Chrome console 中执行结果为 2019,一切正常。
1 | eval(` |
重新打开一个 Chrome console
, 然后执行上面这段代码,结果为空字符串
,
经过查阅资料,发现在 eval 中执行 regx的字面量时,需要额外转义
反斜线,即:
1 | eval(` |
参考资料: