vue element组件 表单姓名、手机号、邮箱正则验证

本文介绍了如何在Vue Element UI框架下进行表单验证,特别是针对姓名、手机号码和电子邮件地址的正则表达式验证。通过实例代码,详细解析了在vue.js项目中如何设置和使用这些验证规则,确保用户输入的数据符合规范。

<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>

 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

D_evin_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值