为javascript代码编写解析器
我想提取javasscript代码,并找出是否有任何动态标记创建,如为javascript代码编写解析器,javascript,parsing,Javascript,Parsing,我想提取javasscript代码,并找出是否有任何动态标记创建,如document.createElement('script')我曾尝试使用正则表达式来实现这一点,但使用正则表达式限制了我只能获取某些格式,因此我想到编写一个javascript解析器来提取所有关键字,javascript代码中的字符串和函数。也许您应该尝试使用一般来说,无法知道给定代码行是否会运行,您需要解决这个问题。 如果您将分析限制为仅查找函数调用的发生,则不会取得多大进展。简单的方法仍然很容易欺骗,如果您只是为docu
document.createElement('script')
我曾尝试使用正则表达式来实现这一点,但使用正则表达式限制了我只能获取某些格式,因此我想到编写一个javascript解析器来提取所有关键字,javascript代码中的字符串和函数。也许您应该尝试使用一般来说,无法知道给定代码行是否会运行,您需要解决这个问题。
如果您将分析限制为仅查找函数调用的发生,则不会取得多大进展。简单的方法仍然很容易欺骗,如果您只是为document.createElement使用regex匹配,您将无法匹配像
document[“create”+“Element”]
这样简单的内容。通常,您不仅需要解析代码,还需要对其进行评估,以避免出现这种情况。为了确保您可以评估代码,您需要再次解决暂停问题。第一条规则是永远不要将正则表达式用于像这样的大对象,或者DOM,或者。你必须用记号来解析它。好消息是你不必自己写。有几个JS到JS解析器
但也有坏消息,人们仍然可以智胜其他人,更不用说解析器和他们编写的代码了。至少您需要使用一些执行时变量来评估代码,并查看它是否尝试访问DOM 那么,编写它到底有什么问题呢?你怎么知道它不会调用创建元素的函数呢?例如,jQuery还可以向DOM添加新元素,而您目前的方法无法检测到这一点