在javascript中使用不同的分隔符

时间:2015-09-08 00:29:34

标签: javascript arrays split

我正在创建一个分割字符串以计算某些数据的函数。例如,这是输入示例“34 + 23-32 + 3”。我尝试以多种形式解决问题,而不使用RegExp。这是代码:

function calcOp() {
  str = "34+23-32+3";
  frstIndex = 0;
  dArray = [];
  for (var i = 0; i < str.length; i++) {
    switch (str.charAt(i)) {
      case "+" :
      dArray.push(str.slice(frstIndex, i));
      dArray.push(str.charAt(i));
    }
  }
}

这是一个简短的例子,这给了我dArray = [“34”,“+”];但是没有运气,我算法试图用字符串的所有字符创建一个数组,并且连接数字也没有运气,有没有办法实现这一点?提前谢谢。

1 个答案:

答案 0 :(得分:1)

在交换机中添加更多运算符,将firstIndex更改为指向运算符后面的字符,并在循环后添加最后一项:

&#13;
&#13;
var str = "34+23-32+3";
var firstIndex = 0;
var dArray = [];
for (var i = 0; i < str.length; i++) {
  switch (str.charAt(i)) {
    case "+":
    case "-":
      dArray.push(str.substr(firstIndex, i - firstIndex));
      firstIndex = i + 1;
      dArray.push(str.charAt(i));
  }
}
dArray.push(str.substr(firstIndex));

// Show result in snippet
document.write(JSON.stringify(dArray));
&#13;
&#13;
&#13;