使用正则表达式解析function字符串
使用正则表达式解析function
字符串
正则表达式:
/\s*(?:(async)\s+)?function\s+(?:([_$a-zA-Z][_$a-zA-Z0-9]*)\s*?)?\(((?:\s*(?:[_$a-zA-Z][_$a-zA-Z0-9]*)\s*)(?:,\s*(?:[_$a-zA-Z][_$a-zA-Z0-9]*)\s*)*?)\)\s*?\{\s*([\s\S]*)\s*\}\s*/
在线调试:点这里
1、正则表达式
var regexp = /\s*(?:(async)\s+)?function\s+(?:([_$a-zA-Z][_$a-zA-Z0-9]*)\s*?)?\(((?:\s*(?:[_$a-zA-Z][_$a-zA-Z0-9]*)\s*)(?:,\s*(?:[_$a-zA-Z][_$a-zA-Z0-9]*)\s*)*?)\)\s*?\{\s*([\s\S]*?)\s*\}\s*/;
2、测试 String
var functionString = `async function name (param1, param2) {
console.log(param1, param2);
}`;
// => "async function name (param1, param2) {\n console.log(param1, param2);\n}"
3、验证
var result = regexp.test(functionString);
4、匹配信息
var result = refunctionString.match(gexp);
/**
* => [
* "async function name (param1, param2) {\n console.log(param1, param2);\n}",
* "async",
* "name",
* "param1, param2",
* "console.log(param1, param2);"
* ]
*/
本文是原创文章,完整转载请注明来自 何小勺
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果