function fn(name, age){
    this.name = name;
    this.age = age;
}var fnBody = fn.toString();
//希望获得方法参数以及方法体。//   argumets === "name, age";
//   body === "this.name = name;this.age = age";// 求正则式

解决方案 »

  1.   

    function fn(name, age){
        this.name = name;
        this.age = age;
    }var fnBody = fn.toString();
    var fnmatch=/function[^\(]+\(([^\)]*)\)\s{/.exec(fnBody)
    ,args=fnmatch[1]
    ,body=fnBody.replace(fnmatch[0],'').replace(/\}$/,'');alert('arguments\n'+args)
    alert('body\n'+body)
      

  2.   

    更正下正则的小毛病
    function fn(name, age){
        this.name = name;
        this.age = age;
    }var fnBody = fn.toString();
    var fnmatch=/function[^\(]+\(([^\)]*)\)\s*{/.exec(fnBody)
    ,args=fnmatch[1]
    ,body=fnBody.replace(fnmatch[0],'').replace(/\}$/,'');
    alert('arguments\n'+args)
    alert('body\n'+body)
      

  3.   

    凑热闹
    function fn(name, age){
    var a = function(){
    return function(){
    return function(){

    }
    }
    }
    }
    var fnBody = fn.toString(),reg =/^[^\(]+\((.*?)\)\s*\{([\s\S]*)}\s*$/,arr=reg.exec(fnBody),arguments=arr[1],body=arr[2];
    alert(arguments)
    alert(body)