wwf
4 天以前 f56e474c81bb25845b46cf99c85bd313dbfcd3b5
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
26
27
28
29
30
31
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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
//表单校验规则
 
export const ruleGenerator = {
  // 必填字段
  required(message = '此字段为必填项') {
    return { required: true, message, trigger: 'blur' }
  },
  
  // 长度限制
  length(min, max, fieldName = '') {
    const message = fieldName 
      ? `${fieldName}长度应在${min}到${max}个字符之间`
      : `长度应在${min}到${max}个字符之间`
    
    return { 
      validator: (rule, value, callback) => {
        if (!value || (value.length >= min && value.length <= max)) {
          callback()
        } else {
          callback(new Error(message))
        }
      }, 
      trigger: 'blur' 
    }
  },
  
  // 手机号验证
  phone() {
    return {
      validator: (rule, value, callback) => {
        const reg = /^1[3-9]\d{9}$/
        if (!value || reg.test(value)) {
          callback()
        } else {
          callback(new Error('请输入正确的手机号码'))
        }
      },
      trigger: ['blur', 'change']
    }
  },
  //验证码验证
  code() {
    return {
      validator: (rule, value, callback) => {
        const reg = /^\d{4}$/
        if (!value || reg.test(value)) {
          callback()
        } else {
          callback(new Error('请输入正确的验证码'))
        }
      },
      trigger: ['blur', 'change']
    }
  },
  password() {
    return {
      validator: (rule, value, callback) => {
        const reg = /^\d{6}$/
        if (!value || reg.test(value)) {
          callback()
        } else {
          callback(new Error('密码格式为6个字符'))
        }
      },
      trigger: ['blur', 'change']
    }
  },
 
  // 多选框验证
  checkbox(message) {
    return { 
      validator: (rule, value, callback) => {
        if (!value) {
          callback(new Error(message));
        } else {
          callback();
        }
      }, 
      trigger: 'change' 
    }
  },
 
  // 邮箱验证
  email() {
    return {
      validator: (rule, value, callback) => {
        const reg = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/
        if (!value || reg.test(value)) {
          callback()
        } else {
          callback(new Error('请输入正确的邮箱地址'))
        }
      },
      trigger: 'blur'
    }
  }
}