Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/386.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
这个简单的JavaScript代码有什么问题?_Javascript_Regex - Fatal编程技术网

这个简单的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
首先避免这两个空内容的方法,请参见更新。