Javascript 使用带操作的数字拆分字符串

Javascript 使用带操作的数字拆分字符串,javascript,arrays,string,Javascript,Arrays,String,如何拆分字符串,例如 "11+4+3"变成"11","4","4","3"? 或者甚至转动数组 [1,1'+',4'+',3]到[11'+',4'+',3] 使用的regexp拆分字符串 /[^0-9]/g 将拆分为我想要的数字,但将删除操作值。我需要一种方法,这样我也可以保持操作值。我还知道字符串的eval将自动将字符串值添加到数值中,但我正在尝试找出如何在不使用eval的情况下添加数字字符串和操作 输出: ["11", "+", "3", "+", "4"] 这似乎得到了你想要的。您可

如何拆分字符串,例如

"11+4+3"变成"11","4","4","3"?

或者甚至转动数组

[1,1'+',4'+',3]到[11'+',4'+',3]

使用的regexp拆分字符串

/[^0-9]/g 
将拆分为我想要的数字,但将删除操作值。我需要一种方法,这样我也可以保持操作值。我还知道字符串的eval将自动将字符串值添加到数值中,但我正在尝试找出如何在不使用eval的情况下添加数字字符串和操作

输出:

["11", "+", "3", "+", "4"]
这似乎得到了你想要的。您可以添加更多的字符来查找regexp内部的+-=。但是,它不会验证字符串是否具有所需的格式。

请不要看到完全重复的字符串,因为它只包含第一个大小写,甚至包括s.split/\D/for 11-4+3*56/2返回[11,-,4,+,3,*,56,/,2]
["11", "+", "3", "+", "4"]
function parseAsParts(input) {

  if (input instanceof Array) {
    input = input.join('');
  }
  var retVal = [];
  var thisMatch = null;
  var partSearch = /(\d+|[+-=])/g;
  while (thisMatch = partSearch.exec(input)) {
    retVal.push(thisMatch[0]);
  }
  return retVal;
}