密码校验规则
// 是否包含一位数字
const regNumber = /(?=.*[\d])/
// 是否包含一位小写字母
const regLetter = /(?=.*[a-z])/
// 是否包含一位大写字母
const regLetters = /(?=.*[A-Z])/
// 是否包含一位特殊字符
const regCharacter = /(?=.*[`~!@#$%^&*()_\-+=<>?:"{}|,.\/;'\\[\]·~!@#¥%……&*()——\-+={}|《》?:“”【】、;‘’,。、])/
// 校验新密码
export const validatePass = (rule, value, callback) => {
console.log(value)
if (value === '') {
callback(new Error('新密码不能为空!请重新输入'))
} else {
if (value.length > 16) {
callback(new Error('密码长度不超过16个字符。'))
} else if (value.length < 8) {
callback(new Error('密码长度不低于8个字符。'))
} else {
if (!/^[a-zA-Z\d]{1}/.test(value)) {
callback(new Error('密码必须以英文大小写字母或数字开头!'))
} else {
if (!regNumber.test(value)) {
callback(new Error('密码必须包含一位数字!'))
} else if (!regLetter.test(value)) {
callback(new Error('密码必须包含一位小写字母!'))
} else if (!regLetters.test(value)) {
callback(new Error('密码必须包含一位大写字母!'))
} else if (!regCharacter.test(value)) {
callback(new Error('密码必须包含一位特殊字符!'))
} else {
callback()
}
}
}
}
}