• 前端验证数学公式是否符合要求


      var formulaString=************
      formulaString = formulaString.replace(/s/g, '')
      if (formulaString === '') {
        this.$message.error('公式不能为空')
        return false
      }
      if (/^[x÷+-*/]/.test(formulaString)) {
        this.$message.error('公式不正确,不能以运算符开始')
        return false
      }
      if (/[x÷+-*/]$/.test(formulaString)) {
        this.$message.error('公式不正确,不能以运算符结束')
        return false
      }
      if (/()/.test(formulaString)) {
        this.$message.error('公式不正确,存在空括号')
        return false
      }
      if (/[x÷+-*/]{2,}/.test(formulaString)) {
        this.$message.error('公式不正确,运算符不能连续')
        return false
      }
      if (/([x÷+-*/]/.test(formulaString)) {
        this.$message.error('公式不正确,( 的后面不能是运算符')
        return false
      }
      if (/[x÷+-*/])/.test(formulaString)) {
        this.$message.error('公式不正确,) 的前面不能是运算符')
        return false
      }
      if (/[^+-*/](/.test(formulaString)) {
        this.$message.error('公式不正确,( 的前面只能是运算符')
        return false
      }
      if (/)[^+-*/]/.test(formulaString)) {
        this.$message.error('公式不正确,) 的后面只能是运算符')
        return false
      }
      var stack1 = []
      for (var i = 0, item1; i < formulaString.length; i++) {
        item1 = formulaString.charAt(i)
        if (item1 === '(') {
          stack1.push('(')
        } else if (item1 === ')') {
          if (stack1.length > 0) {
            stack1.pop()
          } else {
            return false
          }
        }
      }
      if (stack1.length !== 0) {
        this.$message.error('公式不正确,() 不匹配')
        return false
      }
      // 另外还要判断数字的个数等于运算符号个数加1
      this.aList = formulaString.match(/[x÷+-*/]/g)  //运算符合的个数
      
      const singleList = formulaString.split(/[x÷+-*/]/g)
      const reg = /^[0-9]+.?[0-9]*$/
      const writeNum = [] // 数字的个数
      singleList.forEach(el => {
        if (reg.test(el)) {
          writeNum.push(el)
        }
      })
      if (this.aList.length + 1 !==  writeNum.length) {
        this.$message.error('公式不正确')
        return false
      }
  • 相关阅读:
    Struts2_day01--导入源文件_Struts2的执行过程_查看源代码
    R语言低级绘图函数-text
    R语言低级绘图函数-rect
    R语言低级绘图函数-arrows
    R语言低级绘图函数-abline
    R语言绘图布局
    find_circ 识别circRNA 的原理
    CIRI 识别circRNA的原理
    circRNA 序列提取中的难点
    tRNA 二级结构预测可视化
  • 原文地址:https://www.cnblogs.com/mark21/p/14675885.html
Copyright © 2020-2023  润新知