如何拆分
等字符串 '11+4+3'
加入['11', '+', '4', '+', '3']
?
甚至转成
数组 [1, 1, '+', 4, '+', 3]
加入[11, '+', 4, '+', 3]
?
用正则表达式
分割字符串/[^0-9]/g
将拆分成我想要的数字,但会删除操作值。我需要一种方法,以便我也可以保持操作值。我也知道字符串的eval()
会自动将字符串值添加到数字值中,但我试图弄清楚如何在不使用eval()
的情况下添加数字和操作的字符串。
答案 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内部查找“+ - =”。它不会验证字符串是否具有您想要的格式。