【发布时间】:2012-07-17 13:15:02
【问题描述】:
我有 JS 代码。
我想找到每个函数的开始位置(通过“{”符号) 如何使用正则表达式找到它?
编辑:我知道不可能 100% 准确,如何通过正则表达式找到 99% 的函数? 有什么快速的替代品吗?
【问题讨论】:
-
您不应该使用正则表达式解析 Javascript 代码,因为 Javascript 不是常规语言,
{符号在不同的上下文中可能意味着不同的东西。 -
有
function name (/*complicated stuff*/){和function (/*complicated stuff*/){语法。匹配这些,获取他们的位置,并在简单的情况下感到高兴。 -
@Nish,
var whoops = "function FOO"; -
像您这样的人是我们遇到此安全和黑客问题的原因。解析时的语言类不匹配导致解析“树”中的可枚举不可见区域,双向切割(对于 JS 解释器或“解析器”不可见)。在那里,你可以隐藏各种东西。精心构造的 Hidden Stuff(TM) 会在你身上爆炸,粉碎你的筹码,偷走你的妻子,并且(也许)扎根你的盒子。但请继续! ;-)
-
@nobody, hackers 是我们遇到安全和黑客问题的原因。不要责怪受害者。话虽如此,重要的是要教导人们不要成为受害者。
标签: javascript regex