longyvfengyun
2022-03-14 9fcb46f05e975092ac573699b688108b645a09c5
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
import getPasswordRule from "@/assets/js/tools/getPasswordRule";
 
export default {
  /**
   * 用户名校验
   * @param rule
   * @param value 校验值
   * @param callback 回调函数
   * @returns {*}
   */
  userName(rule, value, callback) {
    if (!value) {
      return callback(new Error('用户名不能为空'));
    }
 
    let pattern = /^(?!_)(?!.*?_$)[a-zA-Z0-9_\u4e00-\u9fa5]+$/;
    if(!pattern.test(value)) {
      return callback(new Error('只含有汉字、数字、字母、下划线不能以下划线开头和结尾'));
    }
    return callback();
  },
  pwd(rule, value, callback) {
    if (!value) {
      return callback(new Error('密码不能为空'));
    }
 
    // 根据密码类型和长度动态生成校验规则
    let type = sessionStorage.getItem("passwordType");
    let num = sessionStorage.getItem("passwordNum");
    type = type?Number(type):5;
    num = num?Number(num):8;
    let passwordRule = getPasswordRule(type, num);
 
    let pattern = passwordRule.pattern;
    if(!pattern.test(value)) {
      return callback(new Error(passwordRule.msg));
    }
    return callback();
  }
}