vue,js密碼校驗
//vue密碼校驗/修改密碼校驗:
data() { const equalToPassword = (rule, value, callback) => { if (this.user.newPassword !== value) { callback(new Error("兩次輸入的密碼不一致")); } else { callback(); } };
return { user: { oldPassword: undefined, newPassword: undefined, confirmPassword: undefined, }, // 表單校驗
rules: { oldPassword: [ { required: true, message: "舊密碼不能為空", trigger: "blur" }, ],
newPassword: [ { required: true, message: "新密碼不能為空", trigger: "blur" }, { validator: (rule, value, callback) => { const reg = /(?=.*\d)(?=.*[a-zA-Z])(?=.*[^a-zA-Z0-9]).{6,16}/;//6-16位密碼校驗規則 if (reg.test(value)) { callback(); } else { callback(new Error()); } }, message: "密碼必須由數字、字母、特殊字符組合,請輸入6-16位", trigger: "blur", }, ],
confirmPassword: [ { required: true, message: "確認密碼不能為空", trigger: "blur" }, { required: true, validator: equalToPassword, trigger: "blur" }, ],
}, }; },
//js密碼校驗: let reg = /^(?=.*?[a-z])(?=.*?[A-Z])(?=.*?[0-9])(?=.*?[-!$%^&*()_+|~=`{}\[\]:";'<>?,.\/]).{8,18}$/;//8-18位密碼校驗規則 const password=1653#Ww250 if(reg.test(password)){ console.log(`${password}:長度為${password.length}通過正則表達式密碼校驗`); }else{ console.error(`${password}:${password.length}未通過正則表達式密碼校驗`); }