Blame view

ant-design-vue-jeecg/src/utils/rules.js 3.47 KB
肖超群 authored
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
const validateMobile = (rule, value, callback) => {
  let reg = /^1(3|4|5|7|8)\d{9}$/
  if (!reg.test(value)) {
    callback('请输入正确手机号')
  } else {
    callback()
  }
}
const validateEn = (rule, value, callback) => {
  let reg = /^[_a-zA-Z0-9]+$/
  let reg2 = /^.{4,18}$/
  // 长度为6到18个字符
  if (value !== '' && !reg.test(value)) {
    callback('只允许字母、数字、下划线')
  } else if (value !== '' && !reg2.test(value)) {
    callback('长度6到18个字符')
  } else {
    callback()
  }
}
export const rules = {
  mobile: [{
    required: true,
    message: '请输入手机号',
    trigger: 'blur'
肖超群 authored
26
  }, {validator: validateMobile, trigger: 'blur'}],
肖超群 authored
27
28
  userName: [{
    required: true, message: '请输入用户名', trigger: 'blur'
肖超群 authored
29
  }, {validator: validateEn}],
肖超群 authored
30
  email: [
肖超群 authored
31
    {required: false, type: 'email', message: '邮箱格式不正确', trigger: 'blur'}
肖超群 authored
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
  ],
  // 验证自然数
  naturalNumber: /^(([0-9]*[1-9][0-9]*)|(0+))$/,
  naturalNumberMsg: '请输入自然数',
  // 英文
  english: /^.[A-Za-z]+$/,
  englishMsg: '请输入英文字符',
  // 座机
  telephone: /^\d{3}-\d{7,8}|\d{4}-\d{7,8}$/,
  telephoneMsg: '请输入正确的座机号',
  // 银行卡号码
  bankCard: /^[1-9]\d{9,19}$/,
  bankCardMsg: '请输入正确的银行卡号码',
  // 证件号码
  IDNumber: /^[a-z0-9A-Z]{0,50}$/,
  IDNumberMsg: '请输入正确的证件号码',
  // 身份证号码,包括15位和18位的
  IDCard: /(^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$)|(^[1-9]\d{7}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}$)/,
  IDCardMsg: '请输入正确的身份证号码',
  // QQ号码
  qq: /^[1-9]\d{4,11}$/,
  qqMsg: '请输入正确的QQ号码',
  // 网址, 仅支持http和https开头的
  url: /^(http|https):\/\/[\w\-_]+(\.[\w\-_]+)+([\w\-.,@?^=%&:/~+#]*[\w\-@?^=%&/~+#])?$/,
  urlMsg: '请输入以http和https开头的网址',
  // 0到20位的英文字符和数字
  enNum0to20: /^[a-z0-9A-Z]{0,20}$/,
  enNum0to20Msg: '请输入20位以内的英文字符和数字',
  // 2到100位的中英文字符和空格
  cnEnSpace2to100: /^[a-zA-Z\u4E00-\u9FA5\s*]{2,100}$/,
  cnEnSpace2to100Msg: '请输入2到100位的中英文字符和空格',
  // 数字和换行符
  numLinefeed: /^[0-9\n*]+$/,
  numLinefeedMsg: '请输入数字和换行符',
  // 255位以内的字符
  char0to255: /^.{0,255}$/,
  char0to255Msg: '请输入255位以内的字符',
肖超群 authored
69
70
  required: function (min, max) {
    let rule = [{required: true, message: '', trigger: 'blur'}]
肖超群 authored
71
    if (min) {
肖超群 authored
72
      let r = {min: min, message: '最小长度' + min + '位字符'}
肖超群 authored
73
74
75
      rule.push(r)
    }
    if (max) {
肖超群 authored
76
      let m = {max: max, message: '最大长度' + max + '位字符'}
肖超群 authored
77
78
79
80
      rule.push(m)
    }
    return rule
  },
肖超群 authored
81
82
  select: function () {
    let rule = [{required: true, message: '', trigger: 'change'}]
肖超群 authored
83
84
    return rule
  },
肖超群 authored
85
86
  checked: function (min, max) {
    let rule = [{required: true, type: 'array', message: '', trigger: 'change'}]
肖超群 authored
87
    if (min) {
肖超群 authored
88
      let r = {type: 'array', min: min, message: '最少选择' + min + '项'}
肖超群 authored
89
90
91
      rule.push(r)
    }
    if (max) {
肖超群 authored
92
      let m = {type: 'array', max: max, message: '最多选择' + max + '项'}
肖超群 authored
93
94
95
96
97
98
99
100
      rule.push(m)
    }
    return rule
  }
}
/**
 * @description 排序值验证,排序值不可以大于255
 */
肖超群 authored
101
export const validateOrder = function (rule, value, callback) {
肖超群 authored
102
103
104
105
106
107
108
109
110
  if (parseInt(value) > 255) {
    return callback(new Error('排序值不可以大于255'))
  } else {
    callback()
  }
}