2009-07-14 94 views
0

我正在爲VS2008編寫一個插件,我想識別JavaScript方法(函數)。我有一個文件 - sample.js:`如何識別JavaScript方法(函數)

 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

由於函數是一個保留關鍵字,所以假設只要字函數不在引號中,它應該是一個javascript函數是安全的。

正則表達式應該工作。請記住檢查單詞是否放在引號中(這會使它成爲一個字符串)。

4

請記住,JavaScript函數可以用幾種方法編寫。你展示了「C」風格的函數定義,但還有其他的。

你會看到很多「var test2 = function(){}」。

您還將看到它們作爲對象「test3:function(){}」的成員。

你可以使用「新」,但這不是很受歡迎。

不要忘記,許多JavaScript函數都是匿名的。

良好的措施,你應該處理直接調用模式:

(function() { 

    // ... 

}()); 

請問,你會看到一些自我強加的規則來限制該代碼?如果沒有,當你看到「功能」時,你需要做一些解析。特別是因爲「函數」可能只是某些文本中的一個詞,並且您有幾種不同的引號和幾種註釋樣式來解開它們,看它是否僅僅是文本字符串的一部分或是註釋的一部分。

+0

感謝您的幫助。但如何識別內部括號:「{」,「}」 示例: function test1() { var ii =「x」; {//這對我來說是個問題 var xx =「x」+ ii; } //這對我來說是個問題 return ii; } – 2009-07-14 01:04:09