我需要一個正則表達式可以匹配像有沒有人有正則表達式匹配的JavaScript函數?
function abc(var1, var2){
...
}
...
abc : function(var1, var2){
...
},
...
我需要一個正則表達式可以匹配像有沒有人有正則表達式匹配的JavaScript函數?
function abc(var1, var2){
...
}
...
abc : function(var1, var2){
...
},
...
在JS,一個功能可以包含函數(這反過來又可以包含函數,等等):
x = function() {
this.y = function() { /* ... */ };
function z() { /* ... */ }
};
此外,您可以包含字符串文字或註釋,可以包含看起來像函數的(子)字符串:
var s = "function notAFunction(){}";
/*
function alsoNotAFunction(){}
*/
或包含的功能部件你的正則表達式將絆倒:
function f() {
var s = "not a closing bracket: } ";
}
因此,要回答你的問題是什麼正則表達式將在JS匹配功能:它不存在。你應該/可以使用適當的解析器。
JavaScript函數你是想用正則表達式解析JS?如果是這樣,不要。正則表達式是一個非常糟糕的解析器,請參閱這些問題。
RegEx match open tags except XHTML self-contained tags
If you're not supposed to use Regular Expressions to parse HTML, then how are HTML parsers written?
我知道這個問題已經5年了,但與其他人所說的相反,我實際上炮製了一個相當有效的模式,就像你所問的那樣。雖然相當複雜,但我已經在自己的項目中多次使用過這些內容,但我還沒有呃...希望我能早日看到這個問題。希望這有助於(如果不是你,希望爲那些誰正在尋找一個類似的解決方案)
function\s*([A-z0-9]+)?\s*\((?:[^)(]+|\((?:[^)(]+|\([^)(]*\))*\))*\)\s*\{(?:[^}{]+|\{(?:[^}{]+|\{[^}{]*\})*\})*\}
可愛,但這裏是一個簡單的例子,不正確解析:function(){return「}」} – 2017-03-24 07:25:23
你以爲你做的。但是你沒有。你想要實現什麼目標? – annakata 2010-11-17 13:31:26