私は現在、関数からパラメーター名の配列(値ではなく、引数は必要ありません)を取得しようとしているjavascript(node.js)のプロジェクトに取り組んでいます。現在、 Function.toString() を使用して関数文字列を取得し、それに対して正規表現を実行してパラメーター リストを取得しています。
次の単純な例を見てみましょう。
var myFunction = function (paramOne, paramTwo) { ... }
これに対して正規表現を実行し、文字列マジック (分割など) を実行すると、次のような配列が返されることが期待されます。
paramList = ['paramOne', 'paramTwo']
機能するものがありますが、JavaScriptで変数名に使用できるいくつかのファンキーな文字と、JavaScriptで複数の行で関数を定義できることを考えると、おそらく最善の解決策ではないと感じています。
これが私が現在持っているものです:
function.*[\w\s$]*(\((.*[\w\s,$]*)\))
これにより、グループ 1 で「一致」が得られ、次にグループ 2 で括弧なしのパラメーター リストが得られます。これはクールです。これは本当に私がやりたいことをするための最良の方法ですか? これに使用できるより良い正規表現はありますか? 私は本当に「より単純な」ものを探しているわけではありませんが、考えられるすべての状況を捉えることができるものを探しています。
どんな助けでも大歓迎です、そして前もって感謝します!