[英]split a string with numbers with operations
我如何分割一个字符串,如
'11+4+3'
变成['11', '+', '4', '+', '3']
吗?
甚至将
[1, 1, '+', 4, '+', 3]
变成[11, '+', 4, '+', 3]
吗?
用正则表达式分割字符串
/[^0-9]/g
将拆分为我想要的数字,但将删除操作值。 我需要一种方法来保留操作值。 我也知道字符串的eval()
会自动将字符串值添加到数字值中,但是我试图弄清楚如何在不使用eval()
情况下添加数字和操作字符串。
var str = "11+3+4";
console.log(str.split(/(\+)/));
输出:
["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;
}
那似乎得到您想要的。 您可以在正则表达式中带有“ +-=”的位置添加更多字符。 但是,它不会验证字符串是否具有所需的格式。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.