export default {
  /**
   * 只能是英文和数字
   * @param {*} rule 定义正则
   * @param {*} value 传入的值
   * @param {*} callback 返回函数
   */
  EnglishAndNum(rule, value, cb, text) {
    const reg = new RegExp('^[a-zA-Z0-9]+$')
    if (rule.required) {
      if (!value) {
        cb(new Error('请输入信息'))
      } else if (!reg.test(value)) {
        cb(new Error('只能输入英文和数字'))
      } else {
        cb()
      }
    } else if (value && !reg.test(value)) {
      cb(new Error('只能输入英文和数字'))
    } else {
      cb()
    }
  },
  /**
   * 只能是数字正整数
   * @param {*} rule 定义正则
   * @param {*} value 传入的值
   * @param {*} callback 返回函数
   */
  positiveInteger(rule, value, cb) {
    const reg = new RegExp('^[0-9]*$')
    if (rule.required) {
      if (!value) {
        cb(new Error('请输入信息'))
      } else if (!reg.test(value)) {
        cb(new Error('只能输入正整数'))
      } else {
        cb()
      }
    } else if (value && !reg.test(value)) {
      cb(new Error('只能输入正整数'))
    } else {
      cb()
    }
  },
  /**
   * 数字 可以带小数
   * @param {*} rule 定义正则
   * @param {*} value 传入的值
   * @param {*} callback 返回函数
   */
  validateNumber(rule, value, cb) {
    const reg = new RegExp('^[+]?[0-9]*\\.?[0-9]+$')
    if (rule.required) {
      if (!value && Number(value) !== 0) {
        cb(new Error('请输入信息'))
      } else if (!reg.test(value)) {
        cb(new Error('只能输入正数字'))
      } else {
        cb()
      }
    } else if (value && !reg.test(value)) {
      cb(new Error('只能输入正数字'))
    } else {
      cb()
    }
  },
  /**
   * 验证手机号是否正确
   * @param {*} rule 定义正则
   * @param {*} value 传入的值
   * @param {*} callback 返回函数
   */
  validatePhone(rule, value, callback) {
    const reg = /^1[3|4|5|6|7|8][0-9]\d{8}$/
    if (rule.required) {
      if (!value) {
        callback(new Error('请输入手机号码'))
      } else if (!reg.test(value)) {
        callback(new Error('请输入正确的手机号码'))
      } else {
        callback()
      }
    } else if (value && !reg.test(value)) {
      callback(new Error('请输入正确的手机号码'))
    } else {
      callback()
    }
  },
}
