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 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81
| <template> <el-form :model="formData" :rules="rule" ref="form"> <el-form-item label="用户名" prop="userName"> <el-input v-model="formData.userName" placeholder="请输入用户名" ></el-input> </el-form-item> <el-form-item label="密码" prop="newPasswd"> <el-input v-model="formData.newPasswd" placeholder="请输入新密码" ></el-input> </el-form-item> <el-form-item label="确认密码" prop="comfirmPwd"> <el-input v-model="formData.confirmPwd" placeholder="请输入确认密码" ></el-input> </el-form-item> <el-form-item> <el-button @click="test">提交</el-button> </el-form-item> </el-form> </template>
<script> export default { name: "FormValidate", data() { let reg = /(?!^(\d+|[a-zA-Z]+|[~!@#$%^&*?]+)$)^[\w~!@#$%^&*?]{6,12}$/; var validateConfirmPwd = (rule, value, callback) => { if (!reg.test(value)) { callback(new Error("密码应是6-12位数字、字母或字符!")); } else if (this.formData.newPasswd !== value) { callback(new Error("确认密码与新密码不一致!")); } else { callback(); } }; return { formData: { userName: "", newPasswd: "", confirmPwd: "", }, rule: { userName: [ { required: true, message: "请输入用户名", trigger: "blur" }, { pattern: /^[\u4e00-\u9fa5_a-zA-Z0-9.·-]+$/, message: "不支持特殊字符", trigger: "blur", }, ], newPasswd: [ { required: true, message: "请输入新密码", trigger: "blur" }, { pattern: reg, message: "密码应是6-12位数字、字母或字符!", trigger: "blur", }, ], confirmPwd: [ { required: true, message: "请输入确认密码", trigger: "blur" }, { validator: validateConfirmPwd, trigger: "blur" }, ], }, }; }, methods: { test() { this.$refs["form"].validate((valid) => { if (valid) { // ... } }); }, }, }; </script>
|