为javascript代码编写解析器
问题描述:
我想提取javasscript代码并找出是否有任何动态标签创建像document.createElement('script');
我试图用正则表达式来做到这一点,但使用正则表达式限制我只得到一些格式,所以我认为编写一个JavaScript解析器,它从JavaScript代码中提取所有关键字,字符串和函数。为javascript代码编写解析器
答
一般来说是没有办法知道的代码将永远运行一个给定的线,你将需要解决halting problem。 如果您将分析限制为仅查找函数调用的出现次数,则不会取得很大进展。天真的方法仍然很容易被欺骗,如果你只是匹配document.createElement的正则表达式,那么你将无法匹配像document["create" + "Element"]
那样简单的事情。一般来说,你不仅需要解析代码,而且要评估它,以解决这个问题。并确保您可以评估代码,您将再次需要解决暂停问题。
那么写作它到底是什么问题呢? – 2012-03-29 11:56:44
你怎么知道它不会调用创建元素的函数?例如,jQuery也可以向DOM添加新元素,而您的方法现在不会检测到该元素。 – 2012-03-29 11:57:54
我不知道如何启动它 – user1275375 2012-03-29 11:58:01