这个简单的JavaScript代码有什么问题?
我有以下字符串:这个简单的JavaScript代码有什么问题?,javascript,regex,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-$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);
但它只是提醒原始字符串,无法完成任务。我的正则表达式或使用拆分函数的方式是否有问题?您不需要引用正则表达式
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;
}
不适用于我-将输入拆分为单个字符(使用测试)似乎有效(),但结果在第一个索引和最后一个索引中都包含一个空字符串。@polar:如果使用
.split
,这是无法避免的。有关使用.exec
首先避免这两个空内容的方法,请参见更新。