这个简单的JavaScript代码有什么问题?

时间:2011-01-16 19:06:16

标签: javascript regex

我有以下字符串:

(1-$500.00)(2-$20.00)

我想把它变成一个数组,其值如下所示:

output[0] = 1-$500.00
output[1] = 2-$20.00

所以我尝试了这个:

var output = '(1-$500.00)(2-$20.00)';
var pattern = "/\\)\\(|\\(|\\)?/";

output = output.split(pattern);

alert(output);

但它只是警告原始字符串,不能完成工作。我的正则表达式或我使用拆分函数的方式有问题吗?

1 个答案:

答案 0 :(得分:3)

您不需要引用正则表达式。

var pattern = /\)\(|\(|\)/;

为确保内容符合预期格式(验证)并避免前导和结束空条目,我使用RegExp.exec代替String.split

function my_split(input) {
  var pattern = /\((\d+-\$\d+\.\d+)\)/g;
  var output = [];
  while((m = pattern.exec(input)))
     output.push(m[1]);
  return output;
}