JS正则表达式匹配来自字符串的函数参数

时间:2012-06-14 19:40:46

标签: javascript regex string-parsing

我有一个这样的字符串:matrix(10, 0, 1, 0, -198, 23)

然后我需要匹配该函数的参数并放入数组:

var regexp = /.../gi
var match = regexp.exe('matrix(10, 0, 1, 0, -198, 23)');

console.debug(match) // must return: [10, 0, 1, 0, -198, 23]

我对正则表达不太熟悉,但我认为这是完成这项工作的最快方式。

在这种情况下,

不能使用分割字符串。

发射器的性能测试:http://jsperf.com/regexp-match-vs-string-split

2 个答案:

答案 0 :(得分:5)

'matrix(10, 0, 1, 0, -198, 23)'.match(/-?\d+/g)

答案 1 :(得分:1)

三个步骤:

  1. 使用正则表达式获取parens的内容
  2. 自己更换parens
  3. 以逗号分隔,后跟0或更多空格
  4. var str = 'matrix(10, 0, 1, 0, -198, 23)',
        regex = /\(.*\)/,
        arr;
    
    str = str.match(regex)[0];
    str = str.replace(/[()]/g, '');
    arr = str.split(/,\s+/);
    
    ​console.log(arr);​