You need to enable JavaScript to run this app. JavaScript基于正则实现简单算术表达式解析的方法
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript基于正则实现简单算术表达式解析的方法

正则规则调整方案
  • 修复代码基础变量错配
    现有代码里定义了equation变量存储去空格后的表达式,但后续校验、拆分逻辑里误用了未定义的expression变量,运行时会直接抛出引用错误,需要先把这部分变量名统一。
  • 调整格式校验正则
    原有校验正则/^\d+(?:[+-]\d+)*$/仅支持加减运算符的格式匹配,需要把乘除运算符加入匹配字符集,调整为:
    /^\d+(?:[+\-*/]\d+)*$/
    
    该规则可覆盖“开头为数字,后续重复出现单运算符+数字”的四则运算表达式格式校验。
  • 调整表达式拆分正则
    原有拆分逻辑使用正向先行断言/(?=[+-])/,仅在紧邻+、-运算符的位置做切分,只需把字符集扩展为完整的四则运算符集合(注意转义/字符),调整为:
    /(?=[+\-*/])/
    
    调整后对去空格的表达式执行拆分,可得到预期格式的结果:比如输入1+2-3*4/5,会被正确拆分为["1", "+2", "-3", "*4", "/5"]。

实现注意事项

  • 单纯按顺序计算拆分后的片段会忽略四则运算优先级,拿到拆分结果后需要先遍历计算所有带*、/的片段得到中间值,再合并所有中间值做加减运算,才能得到正确的算术结果
  • 按照原本的需求,表达式里的数字1-5是对应输入框的绑定值,遍历拆分片段时需要提取片段中的数字序号,映射为scope.value1到scope.value5的实际输入值参与计算,不要直接使用片段内的字面数字做运算

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.10 09:36:10