gpt4 book ai didi

javascript - 如何将由数学计算组成的字符串拆分为数组?

转载 作者:行者123 更新时间:2023-11-30 21:01:31 25 4
gpt4 key购买 nike

我正在尝试将由数学计算组成的字符串拆分为一个数组。每个数组元素应代表数字或算术运算符。我尝试通过拆分字符串并再次加入数字来做到这一点:

 var str = "12.5+89.7-568.2/258.6";
var arr = str.splite("");
alert(arr); // [ 1, 2, ., 5, +, 8, 9 ]


我想要的是一个像这样的新数组:

alert(arr1); // [ 12.5, +, 89.7, -, ... ]


我正在尝试使用RegExp来实现此目的:

var re = /[0-9.]/;
var y = [];
var i = 0;
while (i < arr.length) {
var x = "";
do {
x += arr[i];
i++;
} while (arr[i].match(re));
y.push(x);
}
alert(y);


我试图做到这一点,而无需在网络上使用任何预制的解决方案。

最佳答案

正则表达式解决方案:

var str = "12.5+89.7-568.2/258.6"
var items = str.match(/[^\d()]+|[\d.]+/g);
console.log(items);
//["12.5", "+", "89.7", "-", "568.2", "/", "258.6"]


使用 split和正则表达式:

str.split( /([^0-9.])/ ) 


使用 split和令牌列表:

只需列出您关心的 tokens列表,然后遍历每一项,看看它是否是其中之一。如果不是,则将其附加到 current变量,如果是,则按下 current变量和 token

var str = "12.5+89.7-568.2/258.6"
var tokens = ["+","-","*","/"];
var words = str.split("");
var pieces = [];
var current = '';
for (var i = 0; i < words.length; i++) {
if (tokens.indexOf(words[i]) === -1) {
current += '' + words[i] + '';
} else {
current && pieces.push(current);
pieces.push(words[i]);
current = '';
}
}
current && pieces.push(current);
console.log(pieces);
//["12.5", "+", "89.7", "-", "568.2", "/", "258.6"]

关于javascript - 如何将由数学计算组成的字符串拆分为数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47104575/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com