// 密码必须包含数字大小写字母特殊字符str
^(?=.[0-9])(?=.[A-Z])(?=.[a-z])(?=.[!@#%^&*?]).{8,16}$
export function isValidPassword(str){
const reg=/^(?=.[0-9])(?=.[A-Z])(?=.[a-z])(?=.[!@#%^&*?]).{8,16}$/;
return reg.test(str);
}
(?=.[0-9])
任意字符串后有一数字
(?=.[a-z])
任意字符串后有一小写字母
(?=.[A-Z])
任意字符串后有一大写字母
(?=.[!@#$%^&*?])
任意字符串后有一特殊字符\
.{8,16}
8-16位任意字符
const reg=/^(?=.*[0-9])(?=.*[A-Z])(?=.*[a-z])(?=.*[!@#$%^&*?]).{8,16}$/;
console.log(reg.test("123546aA!"),"123546aA!") //true '123546aA!'
console.log(reg.test("12354678"),"12354678") //false '12354678'
console.log(reg.test("12354678a"),"12354678a") //false '12354678a'
console.log(reg.test("12354678aA"),"12354678aA") //false '12354678aA'
console.log(reg.test("12354678a!"),"12354678a!") //false '12354678a!'
console.log(reg.test("12354678A!"),"12354678A!") // false '12354678A!'
封装
export function isValidPassword(str){
const reg=/^(?=.*[0-9])(?=.*[A-Z])(?=.*[a-z])(?=.*[!@#%^&*?]).{8,16}$/;
return reg.test(str);
}
使用
import { isvalidPhone ,isValidPassword} from "@/utils/validate";
var ValidPassword = (rule, value, callback) => {
if (value && !isValidPassword(value)) {
callback(new Error("请输入同时带有大小写字母,数字,特殊字符的八位以上密码"));
} else {
callback();
}
};
data(){
return{
rules:{
password: [{ required: true, message: "密码不能为空", trigger: "blur" },
{ trigger: "blur", validator: ValidPassword }]
}
}
}
不知道为什么$字符写出来会被改动,我先去掉了,各位写的同学手动加上哈