次のような文字列を考えてください。
public function test(data)
{
if (1 == 2)
{
alert("Wtf?");
}
switch (data)
{
case 'test':
alert("Test");
break;
}
}
その文字列を解析して、その関数の本体 (コンテンツ) を取得する必要があります。
関数の内容を取得できるように、正規表現は既に機能していますが、末尾が } の場合。正規表現が停止し、コンテンツは次のようになります。
if (1 == 2)
{
alert("Wtf?");
誰かが私を助けてくれることを本当に願っています..
これは、この文字列を分割するための私の正規表現です:
var test = classContent.replace(/(?:(private|public)\s*)function\s*([a-zA-Z0-9_]+)\s*\(([a-zA-Z0-9_\,\s]*)\s*\)\s*{([^}]+)\}/gi, function(a, b, c, d, e) {
classMethods[c] = {
visibility : b.trim(),
params : d.trim(),
content : e.trim()
};
});