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

JavaScript如何将含数学运算的字符串转换为可计算的数值结果

JavaScript 运算字符串转计算结果实现方案

以下是不同适用场景的可行实现方案:

  • 方案1:eval()快速实现(仅适用于完全可信的运算场景)
    如果运算字符串为内部生成、无用户输入风险,可以直接用该方法,代码最简单:
    const calcStr = "34.5 + 30";
    const res = eval(calcStr);
    console.log(res); // 输出 64.5
    console.log(typeof res); // 输出 number,为标准浮点数值类型
    
    注意:绝对不要在有用户输入的场景下直接使用该方案,会存在代码注入安全风险。
  • 方案2:Function构造函数实现
    安全性略高于eval,但仍仅推荐用于可信输入场景:
    const calcStr = "34.5 + 30";
    const res = new Function(`return ${calcStr}`)();
    console.log(res); // 输出 64.5
    
  • 方案3:安全计算实现(支持不可信用户输入场景)
    先对运算字符串做合法性校验,过滤所有非运算相关字符,避免注入风险:
    function calcExpression(str) {
      // 校验规则:仅允许数字、小数点、加减乘除、括号、空格
      const legalCharReg = /^[\d\s+\-*/().]+$/;
      if (!legalCharReg.test(str)) {
        throw new Error("表达式包含非法字符");
      }
      try {
        return new Function(`return ${str}`)();
      } catch (err) {
        throw new Error("表达式格式错误,请检查后重试");
      }
    }
    
    // 测试调用
    const result = calcExpression("34.5 + 30");
    console.log(result); // 输出 64.5
    

内容的提问来源于stack exchange,提问作者Hevin Siaton Ebarle

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 06:36:03