点我去Gitee
点我去Gitee

检验公用方法模板示例 validate.js

检验公用方法模板示例 validate.js

方法.js代码

// 验证唯一  list的key值是否包含val  list[key]包含val?
function validateOnly(key, val, text, list) {
  for (let i = 0; i < list.length; i++) {
    if (list[i][key] === val) {
      plus.nativeUI.toast(text + '已存在', {
        background: '#ffa38c',
      })

      return false
    }
  }
  return true
}

//判断验证是否符合要求(目前时为空) 验证message的key值是否符合rule规范  rule.test(message[key])
function validateNull(key, rule, message) {
  if (!rule.test(message[key])) {
    return false
  }
  return true
}

// 导出
const validate = {
  validateOnly: validateOnly,
  validateNull: validateNull,
}
export default validate

使用示例

import validate from '../utils/validate.js'//方法:验证填写信息


//填写规则
const rules = {
  name: {
    rule: /\S/,
    info: "*机床名字必填"
  },
  ip: {
    rule: /\S/,
    info: "*机床ip必填"
  },
  equipmentType: {
    rule: /\S/,
    info: "*设备类型必选"
  }
}

  constructor(props) {
    super(props)
    this.state = {
      message: { // 填写的数据
        boxId: '',
        equipmentType: '',
        productModel: '',
        name: '',
        ip: '',
        line: '',
      },
      nameBool: true,//名字填写是都符合规范
      ipBool: true,//ip填写是都符合规范
      equipmentTypeBool: true//设备类型填写是都符合规范
    }

    // 验证机床名字、IP、设备类型必填
    if (!validate.validateNull('equipmentType', rules.equipmentType.rule, message)) {
      this.setState({
        equipmentTypeBool: false
      })
      return
    }
    this.setState({
      equipmentTypeBool: true
    })

// 先验证名字和ip的值的唯一性
      if (validate.validateOnly('name', name, '机床名字', list) &&
        validate.validateOnly('ip', ip, '机床IP', list)) {
        this.addData(boxId)
      }
posted @ 2021-10-19 10:01  biuo  阅读(70)  评论(0编辑  收藏  举报