尝试使用Regex匹配代码中的函数声明

时间:2014-12-21 10:37:41

标签: javascript regex

我正在尝试使用下面的代码

匹配字符串中的函数声明
 // Functions with function fnName(){}
 var functions = fn.match(/function+[\s\S][.a-zA-Z0-9]+[\s\S]/g);
 console.log(functions);

 // Functions with var fnName = function(){}
 var functions = fn.match(/var+[\s\Sa-zA-Z0-9_$=]+function/g);
 console.log(functions);

但是这无法正确捕捉签名。有什么建议吗?

1 个答案:

答案 0 :(得分:1)

您在+varfunction之后使用[\s\S],我认为应该是\s*。您可以将这两种类型的声明与此正则表达式匹配

对于function name(..){...},您可以使用

/function\s*\w+\s*\([^)]*\)\{[\s\S]*?}/g

DEMO

var name = function(...){...},您可以使用

/var\s*\w+\s*=\s*function\s*\([^)]*\)\s*\{[\s\S]*?}/g

DEMO