附個牛逼的鏈接: https://www.cnblogs.com/cexm/p/7737538.html
一般密碼的校驗:
代碼段:
computed: { resetRules () { var validateNewPass = (rule, value, callback) => { const reg = /^(?=.*[A-Za-z])(?=.*\d)(?=.*[~$@$!%*#?&])[A-Za-z\d~$@$!%*#?&]{6,18}$/ if (!reg.test(value)) { callback(new Error('密碼應該為6-18位字母、數字、特殊字符組合')) } else { callback() } } var validatePass = (rule, value, callback) => { if (value !== this.resetword.newPwd) { callback(new Error('兩次密碼不一致')) } else { callback() } } return { newPwd: [ { required: true, message: '請輸入新密碼', trigger: 'blur' }, // { min: 6, max: 18, message: '密碼應該為6-18位字母、數字、特殊字符組合', trigger: 'blur' }, { validator: validateNewPass, trigger: 'blur' } ], rePwd: [ { required: true, message: '請再次輸入密碼', trigger: 'blur' }, { validator: validatePass, trigger: 'blur' } ] } } },
不能純數字:
不能特殊字符,又不能有【】;
computed: { rules () { var validateSignature = (rule, value, callback) => { const reg = /^[\u4e00-\u9fa5A-Za-z0-9_]+$/ const reg2 = /^[0-9]+$/ if (!reg.test(value)) { callback(new Error('2-8個字,不能用特殊符號,不能純數字')) } else if (reg2.test(value)) { callback(new Error('2-8個字,不能用特殊符號,不能純數字')) } else { callback() } } var validateContent = (rule, value, callback) => { const reg = /[【】]/im if (reg.test(value)) { callback(new Error('5-300個字,不能有【】')) } else { callback() } } return { signature: [ { required: true, message: '請輸入短信簽名', trigger: 'blur' }, { validator: validateSignature, trigger: 'blur' }, { min: 2, max: 8, message: '2-8個中英文,不能有特殊符,不能純數字', trigger: 'blur' } ], content: [ { required: true, message: '請輸入短信內容', trigger: 'blur' }, { validator: validateContent, trigger: 'blur' }, { min: 5, max: 300, message: '5-300個字,不能有【】', trigger: 'blur' } ] } } },