正則表達式:獲取js函數體

正則表達式:獲取js函數體

最近要用到獲取js函數的函數體,記錄如下:

function text(){

var i = 3;

.....

}

就是var i =3; 和...部分。

如果只有一層的{},那是很好實現的,以{起始標記,}為結束標記即可。

但對於有不確定多層的{}呢,如下:

function test2(p){

var i = 3;

if(i+p==10){

i = 10;

}else{

i=10-p;

}

console.log(i);

}

要獲取其函數體,正則表達式為:/\{([\s\S]*)\}$/,看下例:

正則表達式:獲取js函數體

正則表達式:獲取js函數體

網上有大神給出的正則是:

/(?:\/\*[\s\S]*?\*\/|\/\/.*?\r?\n|[^{])+\{([\s\S]*)\}$/

這個也是能獲取的,而且似乎應用範圍更廣,本人比較渣渣,不太理解+號前面部分的確切意思,而且我那個短小的也夠用,就不深究了,有大神懂的話,求指教解釋。

記錄到此,希望對大家有用,轉載隨意。


分享到:


相關文章: