関数の本体を文字列に変換する方法を知りたいですか?関数の本体を文字列として取得する方法は?
function A(){
alert(1);
}
output = eval(A).toString() // this will come with function A(){ ~ }
//output of output -> function A(){ alert(1); }
//How can I make output into alert(1); only???
関数の本体を文字列に変換する方法を知りたいですか?関数の本体を文字列として取得する方法は?
function A(){
alert(1);
}
output = eval(A).toString() // this will come with function A(){ ~ }
//output of output -> function A(){ alert(1); }
//How can I make output into alert(1); only???
あなたは醜い何かをやろうとしている場合は、正規表現でそれを行う:
A.toString().match(/function[^{]+\{([\s\S]*)\}$/)[1];
をあなただけの機能を文字列化し、他のすべてを削除することで、本体を取り出すことができます:
A.toString().replace(/^function\s*\S+\s*\([^)]*\)\s*\{|\}$/g, "");
しかし、これを実行する正当な理由はなく、実際にはすべての環境でtoString
が機能しません。
ありがとう! – Till
またはより簡潔に: f.toString()。replace(/(^。\ {| \} $)/ g、 "") –
これは '()=> {{}のように定義された関数では機能しません。 '。 toString()。replace(/^function \ s * \ S + \ s * \([^)] * \)\例:このコードを実行すると、 – MattClimbs
私は*なぜこれをやっているのですか? –
何かをカスタマイズしたい... – Till
何をカスタマイズしますか?何に応じて?どのような効果に? –