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]

私は正規表現にあまり詳しくありませんが、仕事をするための最速の方法になると思います。

この場合、文字列を分割することはできません。

awnsers のパフォーマンス テスト: 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

3 つのステップ:

  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 に答える