2

我有一个这样的字符串: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

4

2 回答 2

5
'matrix(10, 0, 1, 0, -198, 23)'.match(/-?\d+/g)
于 2012-06-14T19:46:11.573 回答
1

三个步骤:

  1. 使用正则表达式获取括号的内容
  2. 自己替换括号,一无所有
  3. 以逗号分隔,后跟 0 个或多个空格
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);​
于 2012-06-14T19:51:59.093 回答