可能性の重複:
How to get function parameter names/values dynamically from javascript正規表現は、関数定義からパラメータリストを取得するには
私は現在、javascriptを(Node.jsの)プロジェクトに取り組んでいる私がしようとしています関数の配列の名前が(値ではなく、引数は不要です)を取得します。私は現在Function.toString()を使用して関数文字列を取得し、それに対して正規表現を実行してパラメータリストを取得しています。
paramList = ['paramOne', 'paramTwo']
:私は戻って、このような配列を期待するいくつかの文字列の魔法(分割など)をやって、この反対私の正規表現を実行し、
var myFunction = function (paramOne, paramTwo) { ... }
:
のは、次の簡単な例を見てみましょう
私は何かが動作しているが、私はそれがおそらく最高のソリューションのいくつかのファンキーな文字javascriptは、変数名を使用することができ、そのJavaScriptは複数の行に関数を定義することができます与えられていないように感じている。ここで
は、私が現在持っているものです。
function.*[\w\s$]*(\((.*[\w\s,$]*)\))
これは私にクールでグループ2、中括弧なしでグループ1での私の「一致」してから、私のparamリストを与えます。これは本当に私がしたいことをするための最善の方法ですか?私はこれに使うことができるより良い正規表現はありますか?私は実際には「よりシンプルな」ものを探しているのではなく、実際に起こりうるすべての状況を把握できるものを探しています。
ご協力いただければ幸いです。
私はそれについてどう思いますか?それは私の正規表現でやろうとしていることですが、おそらく別のアプローチがありますか?私は単に "("と ")"のインデックスをつけて、その間にあるものを分けることができると思っていますか?それは狂った正規表現よりも良いでしょうか? –
@ JasonL:答えにいくつかのコードを追加しました(そして実際の例)。 –
ありがとう!あなたのソリューションは、私が予想していたよりずっと簡単です。私は現在、javascriptが許すさまざまなバリエーションすべてを試しています。これは、javascriptが許す狂った特殊文字のいずれかをキャプチャしますか(最も有名なものの1つは不承認となります)?私はこれがnode.js環境のみであることに注意してください。本当にV8について心配する必要があります。 –