wujingjing
2024-08-12 42794ac8486759c805e5d465ba4588cc31cdcb83
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
// 从 async-validator 中引入构造函数
import Schema from 'async-validator'
 
Page({
  data: {
    name: ''
  },
 
  // 对数据进行验证
  onValidator() {
    // 定义验证规则
    const rules = {
      // key 验证规则的名字,名字需要和验证的数据保持一致
      name: [
        // required 是否是必填项
        // message 如果验证失败,提示错误内容
        { required: true, message: 'name 不能为空' },
 
        // type 验证数据的类型
        { type: 'string', message: 'name 不是字符串' },
 
        // min 最少位数,max 最大位数
        { min: 2, max: 3, message: '名字最少 2 个字,最多是 3 个字' }
 
        // pattern 使用正则对数据进行验证
        // { pattern: '', message: '' }
 
        // validator 自定义验证规则
        // { validator: () => {} }
      ]
    }
 
    // 需要对构造函数进行实例化,同时传入验证规则
    const validator = new Schema(rules)
 
    // 需要调用 validate 实例方法,对数据进行验证
    // 第一个参数:需要验证的数据,要求数据是一个对象
    //  validate 方法只会验证和验证规则同名的字段
    // 第二个参数:是一个回调函数
    validator.validate(this.data, (errors, fields) => {
      // 如果验证成功,errors 是一个 null
      // 如果验证失败,errors 是一个数组,数组每一项是错误信息
 
      // fields 是需要验证的属性,属性值是一个数组,数组中也包含着错误信息
 
      if (errors) {
        console.log('验证失败')
 
        console.log(errors)
 
        console.log(fields)
      } else {
        console.log('验证成功')
      }
    })
  }
})