Jak*_*key 0 javascript regex parsing
我正在努力构建一个正则表达式来匹配 js 函数参数。我在一个项目上工作,我需要解析 javascript 并且我需要正则表达式来匹配函数括号之间的所有内容。
function foo (bar) {} // should match 'bar'
Foo.bar = function (baz, obj) {} // should match only 'baz, obj'
Run Code Online (Sandbox Code Playgroud)
它应该只匹配'function'或'function foo'之后的东西,基本上所以它不匹配函数体内的paren之间的东西。我需要它来排除实际的 '(' 和 ')' 字符。此外,“函数”或函数名称与开头“(”之间的空格可以是无限的。
这是我到目前为止所拥有的,我只获得第二个示例的匹配项,并且仅当“函数”和“(”之间只有一个空格时。正则表达式不是我的强项,所以这甚至可能是不可能的,但是提前致谢!
(?<=,|\()([#a-z0-9]+)(?=(,?[#a-z0-9]+)+\)|\))
Run Code Online (Sandbox Code Playgroud)
更新:这是我试图开始工作的另一种表达方式。它比上面的更接近,但只允许在“函数”和“(”之间有一个空格。它也不包括上面的情况 1。
\b(?<=(function.)\()([^),]+)[^)]*\b
Run Code Online (Sandbox Code Playgroud)
尝试像:
var s = "Foo.bar = function (baz, obj) {}"
var s2 = s.match(/function[^(]*\(([^)]*)\)/)[1];
console.log(s2); //would give baz and obj
var s = "function foo (bar) {}";
var s2 = s.match(/function[^(]*\(([^)]*)\)/)[1];
console.log(s2); //returns bar
Run Code Online (Sandbox Code Playgroud)
更新:
var pattern = /\(([^)]+)/;
var s = "Foo.bar = function (baz, obj) {}"
var s2 = s.match(pattern)[1];
console.log(s2);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
960 次 |
| 最近记录: |