el-form表单校验 手机号 邮箱 正整数 格式验证
手机号格式验证
rules: { phone: [ { required: true, message: '请输入手机号', trigger: 'blur' }, { validator: this.validatePhone, trigger: 'blur' } ] }
validatePhone(rule, value, callback) {
const reg = /^1[3-9]\d{9}$/;
if (!value) {
callback(new Error('请输入手机号'));
} else if (!reg.test(value)) {
callback(new Error('请输入正确的手机号'));
} else {
callback();
}
},
邮箱格式验证
rules: { email: [ { required: true, message: '请输入邮箱', trigger: 'blur' }, { validator: this.validateEmail, trigger: 'blur' } ] }
validateEmail(rule, value, callback) {
// Email正则表达式
const reg = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/;
if (!value) {
callback(new Error('请输入邮箱'));
} else if (!reg.test(value)) {
callback(new Error('请输入正确的邮箱地址'));
} else {
callback();
}
},
正整数校验:
validateNum(rule, value, callback) { if (!value) { return callback(new Error('分数不能为空,请输入')); } const regex = /^\d+(\.\d)?$/; if ( !regex.test(value) || parseFloat(value) <= 0 || (value.includes('.') && (value.split('.')[1].length !== 1 || parseFloat('0.' + value.split('.')[1]) >= 1)) ) { callback(new Error('分数格式有误,请输入正整数')); } else { callback(); } },
完整代码(邮箱非必填):
<template> <el-form :model="formData" :rules="rules" ref="form" label-width="100px"> <el-form-item label="邮箱" prop="email"> <el-input v-model="formData.email" clearable></el-input> </el-form-item> <el-form-item> <el-button type="primary" @click="submitForm('form')">提交</el-button> </el-form-item> </el-form> </template> <script> export default { data() { return { formData: { email: '' }, rules: { email: [ { validator: this.validateEmail, trigger: 'blur' } ] } }; }, methods: { validateEmail(rule, value, callback) { if (value && value.trim() !== '') { // Email正则表达式 const reg = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/; if (!reg.test(value)) { callback(new Error('请输入正确的邮箱地址')); } else { callback(); } } else { // 不填写邮箱时不进行验证,直接通过 callback(); } }, submitForm(formName) { this.$refs[formName].validate(valid => { if (valid) { // 表单验证通过,可以提交表单 console.log('提交表单'); } else { // 表单验证不通过 console.log('表单验证不通过'); return false; } }); } } }; </script>
分类:
前端 / 表单
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!