Javascript 使用带操作的数字拆分字符串
如何拆分字符串,例如 "11+4+3"变成"11","4","4","3"? 或者甚至转动数组 [1,1'+',4'+',3]到[11'+',4'+',3] 使用的regexp拆分字符串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"] 这似乎得到了你想要的。您可
/[^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;
}