ts封装常见的表单校验,适用于element-plus

12 篇文章 1 订阅
5 篇文章 1 订阅

我写技术文章没那么多废话,直接上代码:
1.用ts进行的封装,命名一个文件vaildation.ts

class FormValidationForm{
    //身高体重验证
    readonly hwReg:RegExp = /^[1-9]\d{1,2}$/;
    
    //鞋码验证
    readonly shoesReg:RegExp = /^[34]\d$|^50$/;
    
    //考生号8到14位纯数字
    //readonly kshReg:RegExp = /^[A-Za-z\d]{8,14}$/;
    readonly kshReg:RegExp = /^\d{8,14}$/;
    
    //身份证验证
    readonly idCardReg:RegExp = /^\d{17}[\dXx]$/;
    
    //银行卡号验证
    readonly bankNoReg:RegExp = /^\d{15,19}$/;
    
    //座机号码验证
    readonly telReg:RegExp = /^\d{3,4}-\d{7,8}$/;
    
    //联系号码验证
    readonly linktelReg:RegExp = /^1\d{10}$|^\d{3,4}-\d{7,8}$/;
    
    //手机号码验证
    readonly cellphoneReg:RegExp = /^1\d{10}$/;
    
    //微信号或手机号验证
    readonly wechatReg:RegExp = /^[1]\d{10}$|^[a-zA-Z][\da-zA-Z_-]{5,19}$/;
    
    //QQ号验证
    readonly qqReg:RegExp = /^\d{5,12}$/;
    
    //年龄验证
    readonly ageReg:RegExp = /^0$|^[1-9]\d{0,2}$/;
    
    //金额1验证
    readonly money1Reg:RegExp = /^0$|^[1-9]\d{0,8}$/;
    
    //金额2验证
    readonly money2Reg:RegExp = /^0$|^(([1-9]\d{0,8})|0)(\.\d{1,2})?$/;
    
    //人数(班级人数、失业人数、赡养人数)验证
    readonly personNumReg:RegExp = /^0$|^[1-9]\d{0,2}$/;
    
    //家庭人口数
    readonly familyNumReg:RegExp = /^[1-9]\d{0,2}$/;
    
    //邮编验证
    readonly postReg:RegExp = /^\d{6}$/;
    
    //成绩验证
    readonly scoreReg:RegExp = /^0(\.\d{1,2})?$|^[1-9]\d{0,1}(\.\d{1,2})?$|^100(\.00?)?$/;
    
    //姓名验证
    readonly nameReg:RegExp = /^[A-Za-z\d\u4e00-\u9fa5\n\s*\r_\.\·]+$/;
    
    //准考证号验证
    readonly zkzReg:RegExp = /^\d{10,30}$/;
    
    //电子邮箱验证
    readonly emailReg:RegExp = /^[A-Za-z\d]+([-_.][A-Za-z\d]+)*@([A-Za-z\d]+[-.])+[A-Za-z\d]{2,4}$/;
    
    // 统一认证号,学号
    readonly userNoReg:RegExp = /^[A-Za-z\d-_]*$/;
    
    // 1000以内保留两位小数(包括0)
    readonly scoreReg2:RegExp = /^(0|[1-9]\d{0,2})(\.\d{1,2})?$/;

    Form(){
        let _this = this
        return {
            // 身高体重验证规则
            checkHW_R (rule: any, value:any, callback:any){
                if (!value) {
                    return callback(new Error('必填'))
                }
                if (!_this.hwReg.test(value)) {
                    callback(new Error('请输入3位以内的正整数'))
                } else {
                    callback()
                }
            },
            // 身高体重验证规则
            checkHW_N (rule: any, value:any, callback:any) {
                if (value && !_this.hwReg.test(value)) {
                    callback(new Error('请输入3位以内的正整数'))
                } else {
                    callback()
                }
            },
             // 鞋码验证规则
            checkShoesize_R (rule: any, value:any, callback:any) {
                if (!value) {
                    return callback(new Error('必填'))
                }
                if (!_this.shoesReg.test(value)) {
                    callback(new Error('请输入正确的鞋码'))
                } else {
                    callback()
                }
            },
            checkShoesize_N (rule: any, value:any, callback:any) {
                if (value && !_this.shoesReg.test(value)) {
                    callback(new Error('请输入正确的鞋码'))
                } else {
                    callback()
                }
            },
             // 考生号
            checkKsh_R (rule: any, value:any, callback:any) {
                if (!value) {
                    return callback(new Error('必填'))
                }
                if (!_this.kshReg.test(value)) {
                    callback(new Error('请输入正确的考生号'))
                } else {
                    callback()
                }
            },
            checkKsh_N (rule: any, value:any, callback:any) {
                if (value && !_this.kshReg.test(value)) {
                    callback(new Error('请输入正确的考生号'))
                } else {
                    callback()
                }
            },
            checkIdCard_R (rule: any, value:any, callback:any) {
                if (!value) {
                    return callback(new Error('必填'))
                }
                if (!_this.idCardReg.test(value)) {
                    callback(new Error('请输入正确的身份证号码'))
                } else {
                    callback()
                }
            },
            checkIdCard_N (rule: any, value:any, callback:any) {
                if (value && !_this.idCardReg.test(value)) {
                    callback(new Error('请输入正确的身份证号码'))
                } else {
                    callback()
                }
            },
            checkBankNo_R (rule: any, value:any, callback:any) {
                if (!value) {
                    return callback(new Error('必填'))
                }
                if (!_this.bankNoReg.test(value)) {
                    callback(new Error('请输入正确的银行卡号'))
                } else {
                    callback()
                }
            },
            checkBankNo_N (rule: any, value:any, callback:any) {
                if (value && !_this.bankNoReg.test(value)) {
                    callback(new Error('请输入正确的银行卡号'))
                } else {
                    callback()
                }
            },
            checkTel_R (rule: any, value:any, callback:any) {
                if (!value) {
                    return callback(new Error('必填'))
                }
                if (!_this.telReg.test(value)) {
                    callback(new Error('请输入区号-号码'))
                } else {
                    callback()
                }
            },
            checkTel_N (rule: any, value:any, callback:any) {
                if (value && !_this.telReg.test(value)) {
                    callback(new Error('请输入区号-号码'))
                } else {
                    callback()
                }
            },
            checkLinkTel_R (rule: any, value:any, callback:any) {
                if (!value) {
                    return callback(new Error('必填'))
                }
                if (!_this.linktelReg.test(value)) {
                    callback(new Error('请输入手机号或座机号(区号-号码)'))
                } else {
                    callback()
                }
            },
            checkLinkTel_N (rule: any, value:any, callback:any) {
                if (value && !_this.linktelReg.test(value)) {
                    callback(new Error('请输入手机号或座机号(区号-号码)'))
                } else {
                    callback()
                }
            },
            checkCellPhone_R (rule: any, value:any, callback:any) {
                if (!value) {
                    return callback(new Error('必填'))
                }
                if (!_this.cellphoneReg.test(value)) {
                    callback(new Error('请输入正确的手机号码'))
                } else {
                    callback()
                }
            },
            checkCellPhone_N (rule: any, value:any, callback:any) {
                if (value && !_this.cellphoneReg.test(value)) {
                    callback(new Error('请输入正确的手机号码'))
                } else {
                    callback()
                }
            },
            checkWechat_R (rule: any, value:any, callback:any) {
                if (!value) {
                    return callback(new Error('必填'))
                }
                if (!_this.wechatReg.test(value)) {
                    callback(new Error('请输入正确的微信号或手机号'))
                } else {
                    callback()
                }
            },
            checkWechat_N (rule: any, value:any, callback:any) {
                if (value && !_this.wechatReg.test(value)) {
                    callback(new Error('请输入正确的微信号或手机号'))
                } else {
                    callback()
                }
            },
            checkQQ_R (rule: any, value:any, callback:any) {
                if (!value) {
                    return callback(new Error('必填'))
                }
                if (!_this.qqReg.test(value)) {
                    callback(new Error('请输入正确的QQ号'))
                } else {
                    callback()
                }
            },
            checkQQ_N (rule: any, value:any, callback:any) {
                if (value && !_this.qqReg.test(value)) {
                    callback(new Error('请输入正确的QQ号'))
                } else {
                    callback()
                }
            },
            checkAge_R (rule: any, value:any, callback:any) {
                if (!value) {
                    return callback(new Error('必填'))
                }
                if (!_this.ageReg.test(value)) {
                    callback(new Error('请输入3位以内的自然数'))
                } else {
                    callback()
                }
            },
            checkAge_N (rule: any, value:any, callback:any) {
                if (value && !_this.ageReg.test(value)) {
                    callback(new Error('请输入3位以内的自然数'))
                } else {
                    callback()
                }
            },
            checkMoney1_R (rule: any, value:any, callback:any) {
                if (!value) {
                    return callback(new Error('必填'))
                }
                if (!_this.money1Reg.test(value)) {
                    callback(new Error('请输入9位以内的自然数'))
                } else {
                    callback()
                }
            },
            checkMoney1_N (rule: any, value:any, callback:any) {
                if (value && !_this.money1Reg.test(value)) {
                    callback(new Error('请输入9位以内的自然数'))
                } else {
                    callback()
                }
            },
            //改错误提示请根据具体项目确定
            checkMoney2_R (rule: any, value:any, callback:any) {
                if (!value) {
                    return callback(new Error('必填'))
                }
                if (!_this.money2Reg.test(value)) {
                    callback(new Error('格式错误,如200.00'))
                } else {
                    callback()
                }
            },
            checkMoney2_N (rule: any, value:any, callback:any) {
                if (value && !_this.money2Reg.test(value)) {
                    callback(new Error('格式错误,如200.00'))
                } else {
                    callback()
                }
            },
            checkLoan (rule: any, value:any, callback:any) {
                if (value && !_this.money2Reg.test(value)) {
                    callback(new Error('请输入正确的贷款金额'))
                } else {
                    callback()
                }
            },
            checkGet (rule: any, value:any, callback:any) {
                if (value && !_this.money2Reg.test(value)) {
                    callback(new Error('请输入正确的放款金额'))
                } else {
                    callback()
                }
            },
            checkPersonNum_R (rule: any, value:any, callback:any) {
                if (!value) {
                    return callback(new Error('必填'))
                }
                if (!_this.personNumReg.test(value)) {
                    callback(new Error('请输入3位以内的自然数'))
                } else {
                    callback()
                }
            },
            checkPersonNum_N (rule: any, value:any, callback:any) {
                if (value && !_this.personNumReg.test(value)) {
                    callback(new Error('请输入3位以内的自然数'))
                } else {
                    callback()
                }
            },
            checkFamilyNum_R (rule: any, value:any, callback:any) {
                if (!value) {
                    return callback(new Error('必填'))
                }
                if (!_this.familyNumReg.test(value)) {
                    callback(new Error('请输入3位以内的自然数'))
                } else {
                    callback()
                }
            },
            checkFamilyNum_N (rule: any, value:any, callback:any) {
                if (value && !_this.familyNumReg.test(value)) {
                    callback(new Error('请输入3位以内的自然数'))
                } else {
                    callback()
                }
            },
            checkPost_R (rule: any, value:any, callback:any) {
                if (!value) {
                    return callback(new Error('必填'))
                }
                if (!_this.postReg.test(value)) {
                    callback(new Error('请输入正确的邮编'))
                } else {
                    callback()
                }
            },
            checkPost_N (rule: any, value:any, callback:any) {
                if (value && !_this.postReg.test(value)) {
                    callback(new Error('请输入正确的邮编'))
                } else {
                    callback()
                }
            },
            checkScore_R (rule: any, value:any, callback:any) {
                if (!value) {
                    return callback(new Error('必填'))
                }
                if (!_this.scoreReg.test(value)) {
                    callback(new Error('请输入正确的成绩'))
                } else {
                    callback()
                }
            },
            checkScore_N (rule: any, value:any, callback:any) {
                if (value && !_this.scoreReg.test(value)) {
                    callback(new Error('请输入正确的成绩'))
                } else {
                    callback()
                }
            },
            checkScores_N (rule: any, value:any, callback:any) {// 1000以内
                if (value && !_this.scoreReg2.test(value)) {
                    callback(new Error('请输入正确的成绩'))
                } else {
                    callback()
                }
            },
            checkScores_R (rule: any, value:any, callback:any) {
                if (!value) {
                    return callback(new Error('必填'))
                }
                if (!_this.scoreReg2.test(value)) {
                    callback(new Error('请输入正确的成绩'))
                } else {
                    callback()
                }
            },
            checkName_R (rule: any, value:any, callback:any) {
                if (!value) {
                    return callback(new Error('必填'))
                }
                if (!_this.nameReg.test(value)) {
                    callback(new Error('请输入正确的用户姓名'))
                } else {
                    callback()
                }
            },
            checkName_N (rule: any, value:any, callback:any) {
                if (value && !_this.nameReg.test(value)) {
                    callback(new Error('请输入正确的用户姓名'))
                } else {
                    callback()
                }
            },
            checkZKZ_R (rule: any, value:any, callback:any) {
                if (!value) {
                    return callback(new Error('必填'))
                }
                if (!_this.zkzReg.test(value)) {
                    callback(new Error('请输入30位以内的整数'))
                } else {
                    callback()
                }
            },
            checkZKZ_N (rule: any, value:any, callback:any) {
                if (value && !_this.zkzReg.test(value)) {
                    callback(new Error('请输入30位以内的整数'))
                } else {
                    callback()
                }
            },
            checkEamil_R (rule: any, value:any, callback:any) {
                if (!value) {
                    return callback(new Error('必填'))
                }
                if (!_this.emailReg.test(value)) {
                    callback(new Error('请输入正确的电子邮箱'))
                } else {
                    callback()
                }
            },
            checkEamil_N (rule: any, value:any, callback:any) {
                if (value && !_this.emailReg.test(value)) {
                    callback(new Error('请输入正确的电子邮箱'))
                } else {
                    callback()
                }
            },
            checkEmail_QQ_N (rule: any, value:any, callback:any) {
                if (value) {
                    if (_this.qqReg.test(value) || _this.emailReg.test(value)) {
                        callback()
                    } else {
                        callback(new Error('请输入正确的QQ或电子邮箱'))
                    }
                } else callback()
            },
            checkStuNo_N (rule: any, value:any, callback:any) {
                if (value && !_this.userNoReg.test(value)) {
                    callback(new Error('请输入正确的学号'))
                } else {
                    callback()
                }
            },
            checkStuNo_R (rule: any, value:any, callback:any) {
                if (!value) {
                    return callback(new Error('必填'))
                }
                if (!_this.userNoReg.test(value)) {
                    callback(new Error('请输入正确的学号'))
                } else {
                    callback()
                }
            },
            checkOneCardNo_N (rule: any, value:any, callback:any) {
                if (value && !_this.userNoReg.test(value)) {
                    callback(new Error('请输入正确的统一认证号'))
                } else {
                    callback()
                }
            },
            checkOneCardNo_R (rule: any, value:any, callback:any) {
                if (!value) {
                    return callback(new Error('必填'))
                }
                if (!_this.userNoReg.test(value)) {
                    callback(new Error('请输入正确的统一认证号'))
                } else {
                    callback()
                }
            }
        }
    }
}
export const formValidationForm = new FormValidationForm() 
//测试
// new FormValidationForm().Form().checkAge_N()
//FormValidationForm.inst.Form().checkAge_N()

2.使用场景

//import放最前面
import { formValidationForm }from '@/utils/vaildation'
const { Form } = formValidationForm ;
//rules是element-plus表单的校验规则
rules:{
     idCardNo: [{validator: Form().checkAge_N, trigger: 'blur' }],
 },

3.感谢
如果觉得写得好,记得收藏哦 ~ (O_O) ~

  • 6
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值