我正在为VS2008编写插件,我想识别JavaScript方法(函数)。我有一个文件 - sample.js:`
function test0()
{
var i = 0;
{
var j = 0;
}
var array = { 1: 2, dd: 10, aaa: 3 };
return array;
}
function test1()
{
var ii = "x";
{
var xx = "x" + ii;
}
return ii;
}
`
如何识别这些方法?使用正则表达式?
答案 0 :(得分:4)
请记住,JavaScript函数可以用几种方式编写。您展示了“C”样式函数定义,但还有其他函数定义。
你会看到很多“var test2 = function(){}”。
您还会将它们视为对象“test3:function(){}”的成员。
你可以使用“新的”,但这不是很受欢迎。
不要忘记许多JavaScript函数都是匿名的。
为了更好的衡量,你应该处理直接的调用模式:
(function () {
// ...
}());
您看到的代码是否会受到某些自我规定的限制?如果没有,当你看到“功能”时,你需要进行一些解析。特别是因为“函数”可能只是某些文本中的单词,并且您有几种不同类型的引号和几种注释样式可以解开,看它是否只是文本字符串的一部分或注释的一部分。
答案 1 :(得分:0)
由于函数是一个保留关键字,因此可以安全地假设,只要单词函数不在引号中,它就应该是一个javascript函数。
正则表达式应该有效。请记住检查单词是否包含在引号中(这会使单词成为字符串)。