【发布时间】:2014-03-02 19:03:00
【问题描述】:
我正在解析一些 JavaScript 代码,需要获取其中的所有正则表达式。文字符号/\/(.(?:[^\/])|\\)+\/[gmi]*/gi 看起来不错,但在某些情况下它不能正常工作。
例如,对于这段代码:
html = html.replace(/\</g, '<').replace(/\>/g, '>').replace(/\&/g, '&');
match() 给出了两个愚蠢的结果:/\</g, '&lt;' ).replace( / 和 /\&/g
我似乎无法让它工作。
【问题讨论】:
-
我建议使用真正的 JavaScript 解析器,例如 esprima.org。然后你就可以遍历 AST 并轻松获取所有正则表达式字面量。
标签: javascript regex parsing