Regex解析Javascript函数调用式语法
Regex to parse Javascript function call-like syntax
我有以下数据可能性
fnname()
fnname(value)
fnname(value,valueN)
我需要一种方法来解析它与javascript regex获得数组
[fnname]
[fnname,value]
[fnname,value,valueN]
提前感谢!
你可以尝试匹配而不是分割,
> var re = /[^,()]+/g;
undefined
> var matches=[];
undefined
> while (match = re.exec(val))
... {
... matches.push(match[0]);
... }
5
> console.log(matches);
[ 'fnname', 'value', 'value2', 'value3', 'value4' ]
或
> matches = val.match(re);
[ 'fnname',
'value',
'value2',
'value3',
'value4' ]
这应该可以为您工作:
var matches = string.split(/[(),]/g).filter(Boolean);
- Regex
/[(),]/g
用于分割字符类 中的这3个字符中的任何一个 -
filter(Boolean)
用于丢弃结果数组 中的所有空结果
例子:
'fnname()'.split(/[(),]/g).filter(Boolean);
//=> ["fnname"]
'fnname(value,value2,value3,value4)'.split(/[(),]/g).filter(Boolean);
//=> ["fnname", "value", "value2", "value3", "value4"]
从其他答案中获得一些灵感,并根据标识符的规则:
str.match(/'w+/g)
使用分隔符:
var val = "fnname(value,value2,value3,value4)";
var result = val.split(/[','(')]+/);
这将产生:
["fnname", "value", "value2", "value3", "value4", ""]
注意你需要处理空条目:)你可以使用Array.filter:
result = result.filter(function(x) { return x != ""; });
你可以这样做:
"fnname(value,value2,value3,value4)".split(/['(,')]/g).slice(0, -1);
计算结果为
["fnname", "value", "value2", "value3", "value4"]
相关文章:
- 是否可以将一个函数输入连接到另一个函数调用的文本
- 在输入字段上有两个函数调用,一个在Blur上,一个不在Angular中
- 如何在Javascript函数调用中循环变量
- Javascript:应为赋值或函数调用,但实际看到的却是表达式
- 如何远程检查JavaScript应用程序的函数调用堆栈
- javascript函数调用不起作用
- 为什么这个函数调用会破坏程序并导致未定义的变量
- 如何通过函数调用设置图像的src
- 从全局函数调用Ember控制器上的方法
- 为什么Jquery$.ajax在函数调用中触发所有statusCode,即使调用成功
- Javascript函数调用语法不清楚
- 正确的语法以调用自调用函数
- 在调用时计算属性,而不使用函数调用语法
- Regex解析Javascript函数调用式语法
- Javascript函数调用语法
- 动态aspx Javascript函数调用中的语法错误
- ES6的语法是什么?函数调用后的冒号
- Es6哈希数组索引函数调用混合语法
- 函数调用中的语法错误
- Javascript语法[..]]在函数调用/构造函数调用前