
<template>
<div>
<el-form
:model="ruleForm"
:rules="rules"
ref="ruleForm"
label-width="100px"
class="demo-ruleForm">
<el-form-item label="你的姓名" prop="uname">
<el-input
v-model="ruleForm.uname"
></el-input>
</el-form-item>
<el-form-item label="你的电话" prop="phone">
<el-input
v-model="ruleForm.phone"
></el-input>
</el-form-item>
<el-form-item label="你的邮箱" prop="mailbox">
<el-input
v-model="ruleForm.mailbox"
></el-input>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="resetForm('ruleForm')">提交</el-button>
</el-form-item>
</el-form>
</div>
</template>
<script>
export default {
data() {
var checkName = (rule, value, cb) => {
//验证名字的正则表达式
const regName = /^([\\u4e00-\\u9fa5]{1,20}|[a-zA-Z\\.\\s]{1,20})$/;
if (regName.test(value)) {
//正确的名字
return cb();
}
cb(new Error("请输入正确的名字"));
};
var checkMobile = (rule, value, callback) => {
if (value === "") {
callback(new Error("手机号不可为空"));
} else {
if (value !== "") {
var reg = /^1[3-9]\d{9}$/;
if (!reg.test(value)) {
callback(new Error("请输入有效的手机号码"));
}
}
callback();
}
};
var checkEmail = (rule, value, cb) => {
//验证邮箱的正则表达式
const regEmail = /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/;
if (regEmail.test(value)) {
//合法的邮箱
return cb();
}
cb(new Error("请输入合法的邮箱"));
};
return {
ruleForm: {
},
rules: {
uname: [
{ required: true, message: "请输入名字", trigger: "blur" },
{
validator: checkName,
min: 2,
max: 5,
message: "请输入正确的名字",
trigger: "blur",
},
],
phone: [
{ required: true, message: "请输入电话", trigger: "blur" },
{
validator: checkMobile,
min: 11,
max: 11,
message: "手机号格式错误",
trigger: "blur",
},
],
mailbox: [
{ required: true, message: "请输入你的邮箱", trigger: "blur" },
{
validator: checkEmail,
min: 9,
max: 18,
message: "邮箱格式错误",
trigger: "blur",
},
],
},
};
},
methods: {
resetForm(formName) {
//重置
this.$refs[formName].validate(valid => {
if (valid) {
alert("提交成功!");
this.$router.go(-2);
} else {
alert("你没有写完!!");
this.$refs[formName].resetFields();
}
});
},
},
};
</script>