我有以下字符串:
(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);
但它只是警告原始字符串,不能完成工作。我的正则表达式或我使用拆分函数的方式有问题吗?
答案 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;
}