You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何计算字符串形式存储的乘法、除法运算表达式结果

仅含乘除运算的字符串表达式计算方案

针对仅包含数字、*、/运算符的字符串表达式,有3种常用可行方案,可根据自身场景选择:

  • 手动解析实现(生产环境首选,无安全风险)
    如果你处理的表达式和示例一致,都是「两个数字+单个乘/除运算符」的格式,逻辑非常简单:先定位字符串里的运算符位置,把字符串切割成左右两个数字,转成数值类型后对应做乘/除运算即可。
    以JavaScript为例的实现代码:
    function calc(expression) {
      const mulIdx = expression.indexOf('*')
      if (mulIdx !== -1) {
        const left = Number(expression.slice(0, mulIdx))
        const right = Number(expression.slice(mulIdx + 1))
        return left * right
      }
      const divIdx = expression.indexOf('/')
      const left = Number(expression.slice(0, divIdx))
      const right = Number(expression.slice(divIdx + 1))
      return left / right
    }
    
    // 测试
    calc("5*2")  // 返回10
    calc("12/3") // 返回4
    
    如果后续要兼容"2*4*5/2"这类连续乘除的表达式,只要把所有数字、运算符按顺序拆分出来,从左到右依次迭代计算就行,不需要复杂的算法。
  • 动态执行方法(仅适合本地处理可信数据场景,禁止用于用户可控输入场景)
    几乎所有编程语言都自带动态执行代码的能力,比如JavaScript的eval()、Python的eval(),直接传入表达式字符串就能拿到计算结果,写法非常简单:
    product = "12/3"
    result = eval(product) # 得到结果4
    

    注意:该方案存在严重的代码注入风险,如果传入的字符串是用户可控的,攻击者可以构造恶意代码执行任意操作,比如删除服务器文件、窃取敏感数据,非完全可信的内部场景绝对不要用。

  • 专用表达式解析库(适合后续可能扩展复杂运算的场景)
    如果后续你的表达式可能加入加减、括号、取余甚至自定义运算规则,可以直接用对应语言生态里成熟的安全数学表达式解析库,这类库默认屏蔽了任意代码执行的能力,仅支持预设的数学运算,没有注入风险,不需要自己写解析逻辑,传入字符串即可拿到结果。

内容的提问来源于stack exchange,提问作者Kashmiryy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 21:48:14