在字符串中计算字符过去某个字符(JS)

时间:2018-06-13 09:00:56

标签: javascript string

我正在尝试创建一个特定的计算器,但为了使它工作,我需要一种方法将字符串拆分为两个。

说我有字符串'5+5==10*2'。我需要一种方法将'5+5'分成一个变量/字符串,将'10*2'分成另一个变量/字符串。

这甚至可能吗?在JavaScript中实现这一目标的最简单或最好的方法是什么?

2 个答案:

答案 0 :(得分:0)

使用split('==')获取数组中的分割值。然后根据您的上下文使用这些值。

var str = "5+5==10*2";
var res = str.split('==');
console.log(res);
//or print individual value
res.forEach(item=>console.log(item));

答案 1 :(得分:0)

您正在寻找的是一种解析以字符串表示的操作的方法。您可以将它们分为两部分:

  • 比较
  • 数学

您可以将带有比较运算符的字符串拆分为表达式列表。这些将是操作数和运算符的字符串。

您可以进一步拆分此字符串以获取各个部分,以获取可以执行计算的数据。

以下是一个示例:



function getExpressionList(str) {
  var seperateRegex = /==|===|\!=|\!==/;
  return str.split(seperateRegex);
}

function getOperandsWithOP(str) {
  const operatorRegex = /\+|-|\/|\*|^|%/
  const decimalRegex = /\d+/;
  const expressionList = getExpressionList(str);
  return expressionList.map((expression) => {
    const operands = expression.split(operatorRegex);
    const operators = expression.split(decimalRegex).filter(x => !!x);
    return { operands, operators }
  })
}

var str = "5+5==10*2";
console.log(getOperandsWithOP(str))