javascript - 如何从带括号的字符串执行数学运算?

标签 javascript math eval

我很难使用 7( 7+(7 (7+1) ))(7) 等括号执行数学运算。我正在对我的操作执行eval()。我认为解决这个问题的方法是将其转换为 7*(7+(7*(7+1)))*(7)。我试过了

/(?!\*\()(\()/g

避免在正则表达式上使用 '*(' 并接受 '(' 作为替换方法,但我失败了。我正在考虑插入 *( 之前。如何正确运行 7( 7+(7 (7+1) ))(7) ?我正在为一个计算器项目执行此操作。

最佳答案

这是一个非正则表达式解决方案。首先用空字符串替换所有空格。然后,仅当括号前面没有运算符时,才将“(”替换为“*(”。

var testString = ("7( 7+(7 (7+1) ))(7)").split("").filter((e) => e!=" ");
var arr = ["+", "-", "/", "("];

var resultString = testString.reduce(function(prev, curr, i)                               
 {
     if(arr.indexOf(i-1 ? testString[i-1] : "test") && curr == "(") { 
           return prev += "*(";
       }else{
           return prev += curr;
        }
        
  },"");

console.log(resultString);

关于javascript - 如何从带括号的字符串执行数学运算?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40065736/

相关文章:

javascript - 如何刷新客户端 INLINE javascript

javascript - Chromecast 定制 CAF 接收器

javascript - 如何创建粘性导航栏 css 和 javascript

python - 环形包裹(x 和 y 包裹)二维数组上一组位置的质心?

bash - 使用 eval 运行管道命令

r - 用于评估 data.table 分配中的字符串的快捷方式

javascript - 将数据插入输入字段而不是文本区域

html - 如何将公式转换为 MathML 以便在网页中使用

python - Sympy nsolve 函数和多个解决方案

javascript - 将多个相似的函数附加到原型(prototype)