2009-07-14 7 views
0

私はVS2008用のプラグインを作成していますが、JavaScriptメソッド(関数)を認識したいと思います。 `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; 
     } 

`

これらのメソッドを認識するための方法:sample.js - 私はファイルを持っていますか?正規表現を使用しますか?

答えて

0

functionは予約されたキーワードなので、functionという語が引用符で囲まれていない限り、javascript関数でなければなりません。

Regexが動作するはずです。単語が引用符で囲まれているかどうかを確認してください(単語にすると文字列になります)。

4

JavaScript関数はいくつかの方法で記述できます。あなたは "C"スタイルの関数定義を示しましたが、他にもあります。

「var test2 = function(){}」が多数表示されます。

「test3:function(){}」というオブジェクトのメンバーとしても表示されます。

「新しい」を使用することはできますが、あまり一般的ではありません。

多くのJavaScript関数は匿名であることを忘れないでください。あなたはすぐに呼び出しパターン処理する必要があります良い測定のために

(function() { 

    // ... 

}()); 

はあなたが表示されますコードは、いくつかの自主ルールによって制限されますか?そうでない場合は、「関数」と表示されたときに解析する必要があります。特に "関数"は単にテキストの中の単語に過ぎず、引用符の種類がいくつかあり、それがテキスト文字列の一部であるかコメントの一部であるかを調べるための解説スタイルがいくつかあります。

+0

ありがとうございました。しかし、内部のかっこを識別する方法: "{"、 "}" サンプル: function test1() { var ii = "x"; {//これは問題です var xx = "x" + ii; } //これは私の問題です return ii; } –

+0

あなたのオリジナルの質問を、あなたの特定の質問についてもう少し詳細に編集できますか?コメントでコードを読むのは難しいです。 – Nosredna

+0

私の問題を解決する正規表現は、 "function \\ s *?\\([\\ w、\\ s] *?\\)\\ s *?{([^ {] |({ })* | [^}])*?} "。いくつかの変更やすべてがうまくいくはずです。ヒントをありがとう。 –