用数字分割字符串

时间:2018-12-12 22:49:14

标签: javascript parsing

我一直试图用数字分割字符串。基本上我有一个字符串,例如:

"10x + 10"

JS将其拆分并获取:

["+10x", "+10"]

我已经尝试过几次,但是没有成功。如果我理解正确,则只需将其除以+ - / *。我最大的尝试是:

var statement = ["10x + 10"]
var spliters = ['+', '-', '*', '/'];

for (i = 0; i < spliters.length; i++) {
    for (o = 0; o < statement.length; o++) {
        statement[o] = statment[o].split(spliters[i]);
        for (p = 0; p < statment[o].length - 1; p++) {
            statement[o][p] = spliters[i] + statement[o][p];
        }
        statement = flatten(statement);
    }
}

但是它不起作用。另外,我只希望+-在数组元素的前面,而不是*/。如果有人可以帮助我,将不胜感激。

1 个答案:

答案 0 :(得分:0)

请记住,Array.prototype.split()可以使用正则表达式:

let str = "10x + 10";
let arr = str.split(/[+|-|\*|/]/);
console.log(arr); // output: ["10x ", " 10"];

但是,这不是解析算术表达式的好方法。为此,我建议使用Shunting-yard algorithm