vue封装 element-ui form表单验证 正则匹配手机号 自定义校验表格内容

在methods:中写:

	//检查手机号
	isCellPhone(val) {
	      if (!/^1(3|4|5|6|7|8)\d{9}$/.test(val)) {
	        return false;
	      } else {
	        return true;
	      }
	    },

在template中

	<el-form :model="formedit" ref="ruleForms" :rules="ruleEdit" label-position="left">
    <el-form-item label="姓名" :label-width="formLabelWidth" prop="newName">
      <el-input v-model="formedit.newName" autocomplete="off"></el-input>
    </el-form-item>
    <el-form-item label="手机号" :label-width="formLabelWidth" >
      <el-input v-model="formedit.newPhone" autocomplete="off" disabled></el-input>
    </el-form-item>
    <el-form-item label="权限" :label-width="formLabelWidth" prop="newRoleId">
      <el-select v-model="formedit.newRoleId" placeholder="请选择权限">
        <el-option label="超级管理员" :value="1"></el-option>
        <el-option label="管理员" :value="2"></el-option>
      </el-select>
    </el-form-item>
  </el-form>

需要验证手机写的是 element框架中prop="phone"验证规则


	<el-form-item label="手机号" prop="phone">
      <el-input v-model="formAdd.phone" autocomplete="off"></el-input>
    </el-form-item>

data中

		 data() {
		    var checkphone = (rule, value, callback) => {
		      // let phoneReg = /(^1[3|4|5|6|7|8|9]\d{9}$)|(^09\d{8}$)/;
		      if (value == "") {
		        callback(new Error("请输入手机号"));
		      } else if (!this.isCellPhone(value)) {//引入methods中封装的检查手机格式的方法
		        callback(new Error("请输入正确的手机号!"));
		      } else {
		        callback();
		      }
		    };
		    return {
		      rules: {
		        userName: [{ required: true, message: "请输入姓名", trigger: "blur" }],
		        phone: [{ required: true, validator: checkphone, trigger: "blur" }],//validator: checkphone是验证手机的引入checkphone函数    
		        roleId: [{ required: true, message: "请选择权限", trigger: "change" }]
		      },
		 }

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你可以使用`vuelidate`库来进行表单验证。以下是一个示例代码,用于验证输入是否为8位、16位或20位的数字和A-F字母(不区分大小写): 首先,安装`vuelidate`库: ```bash npm install vuelidate ``` 然后,在你的Vue组件中,导入`vuelidate`并定义表单验证规则: ```javascript import { required, regex } from 'vuelidate/lib/validators' export default { data() { return { form: { input: '' } } }, validations: { form: { input: { required, regex: value => /^(?:[0-9A-F]{8}|[0-9A-F]{16}|[0-9A-F]{20})$/i.test(value) } } } } ``` 在上面的代码中,`input`字段是用于接收用户输入的表单字段。我们使用`required`验证器来确保输入不为空,并使用自定义的`regex`验证器来验证输入是否满足正则表达式要求。 正则表达式`/^(?:[0-9A-F]{8}|[0-9A-F]{16}|[0-9A-F]{20})$/i`用于匹配8位、16位或20位的数字和A-F字母(不区分大小写)。`^`和`$`用于限制整个输入的长度,`(?:...)`用于分组而不捕获结果,`[0-9A-F]`表示可以是数字或A-F字母。 最后,在模板中显示验证错误信息: ```html <template> <form @submit.prevent="submitForm"> <input v-model="form.input" type="text"> <div v-if="$v.form.input.$error"> <div v-if="!$v.form.input.required">Input is required.</div> <div v-if="!$v.form.input.regex">Input must be 8, 16 or 20 characters long and contain only digits and A-F letters.</div> </div> <button type="submit">Submit</button> </form> </template> ``` 在上面的代码中,我们使用`$v.form.input.$error`来检查验证错误的存在,并使用`$v.form.input.required`和`$v.form.input.regex`来检查具体的验证错误类型。 这样,当用户输入不满足要求时,会显示相应的错误信息。当用户点击提交按钮时,你可以在`submitForm`方法中检查表单是否通过验证。 希望这可以帮助到你!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值