用操作分割带有数字的字符串

时间:2015-08-09 17:52:03

标签: javascript arrays string

如何拆分

等字符串

'11+4+3'加入['11', '+', '4', '+', '3']

甚至转成

数组

[1, 1, '+', 4, '+', 3]加入[11, '+', 4, '+', 3]

用正则表达式

分割字符串
/[^0-9]/g 

将拆分成我想要的数字,但会删除操作值。我需要一种方法,以便我也可以保持操作值。我也知道字符串的eval()会自动将字符串值添加到数字值中,但我试图弄清楚如何在不使用eval()的情况下添加数字和操作的字符串。

2 个答案:

答案 0 :(得分:4)

var str = "11+3+4";    
console.log(str.split(/(\+)/));

输出:

["11", "+", "3", "+", "4"]

答案 1 :(得分:0)

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;
}

这似乎得到了你想要的东西。您可以添加更多字符以在regexp内部查找“+ - =”。它不会验证字符串是否具有您想要的格式。