angular的api代码中的函数如何检查匿名函数签名获得多个匹配项
How is function in angular's api code checking for anonymous function signature getting multiple matches?
使用 angularjs 中的 api 代码。对此功能感兴趣。不明白它是如何获得多个匹配的。例如,在 return 语句中使用 args1 与 arg[0]。
var FN_ARGS = /^function's*[^'(]*'('s*([^')]*)')/m;
var STRIP_COMMENTS = /(('/'/.*$)|('/'*['s'S]*?'*'/))/mg;
function anonFn(fn) {
// For anonymous functions, showing at the very least the function signature can help in
// debugging.
var fnText = fn.toString().replace(STRIP_COMMENTS, ''),
args = fnText.match(FN_ARGS);
if (args) {
return 'function(' + (args[1] || '').replace(/['s'r'n]+/, ' ') + ')';
}
return 'fn';
}
所以。。
anonFn(function(a, b) { return a + b;})
// args = ["function (a, b)", "a, b", index: 0, input: "function (a, b) {return a + b;}"]
我知道 args2 和 on 是标准输出的一部分,如果没有为每个 msdn 设置全局
但是 - 它如何同时返回 ["函数 (a, b("、"a, b",...] 作为匹配情况?首先以为这是我对Sting.prototype.match的不了解,现在,认为这是我对正则表达式不了解的事情 - 但是
在 RegExr 链接中进行了此检查,它只显示匹配 - '函数(a, b('
其他链接:这是我的 plunker,这里是 src 页面 angularjs api anonFn
它返回整个匹配项以及组索引 1 内的字符。由于您在正则表达式中定义了捕获组,因此它将返回匹配的字符以及组索引 1 内的字符。
演示
请参阅上述演示链接的右侧。您的正则表达式与字符串function(a, b)
匹配,并且由于捕获组,它还捕获子字符串a, b
。最后,相应的函数同时返回匹配和捕获。
从正则表达式中删除捕获组,并且必须仅获取匹配的字符串作为输出。
^function's*[^'(]*'('s*[^')]*')
演示
相关文章:
- 检查onsubmit doenst work jquery contactform上的函数
- Javascript函数检查日期
- Javascript 函数检查
- 使用 jQuery 函数检查表中的可编辑列
- Javascript 函数检查公式器中的所有输入不起作用
- 使用 JavaScript + jQuery 函数检查表行冗余的性能降低
- 如何使用JavaScript函数检查文本框的两个值
- 使用Array.every()函数检查是否定义了所有值
- 测试一个由承诺返回的函数——检查错误
- jQuery函数检查文本框
- Javascript函数检查vb变量
- 如何在AngularJS上使用service函数检查一个包db文档是否存在
- jquery.each函数检查另一个选择器并删除重复项
- 用可重用的函数检查表单值
- JS函数检查所有的复选框,这是不需要的
- 根据字符串和do函数检查ng-model的值
- 函数检查字符串并更改它们
- 函数检查第一个空白单元格
- 对于我的函数检查算法,是否有更好的替代eval() ?
- 如何使用javascript函数检查字段是否已填充数据