前端项目中(Vue)表单校验规则总结

1.手机号验证

export var phoneValidate = (rule, value, callback) => {
    var phone = value.replace(/\s/g, "");//去除空格
    //校验手机号,号段主要有(不包括上网卡):130~139、150~153,155~159,180~189、170~171、176~178。14号段为上网卡专属号段
    let regs = /^((13[0-9])|(17[0-1,6-8])|(15[^4,\\D])|(18[0-9]))\d{8}$/;
    if (value.length == 0) {
        callback([new Error('请输入手机号')]);
    } else {
        if (!regs.test(phone)) {
            callback([new Error('手机号输入不合法')]);
        } else {
            callback();
        }
    }
}

2.邮箱验证

export var mailValidate = (rule, value, callback) => {
    var mail = value.replace(/\s/g, "");//去除空格
    var myreg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
    if (mail.length == 0) {
        callback([new Error('请输入邮箱')]);
    } else if (!myreg.test(mail)) {
        callback([new Error('邮箱输入不规范')]);
    } else {
        callback()
    }
}

3.不支持汉字验证

export function validateChinese(rule, value, callback) {
    const reg = /[\u4E00-\u9FA5]/i;
    if (reg.test(value)) {
        callback(new Error("不支持汉字"));
    } else {
        callback();
    }
}

4.密码验证

export var validatePassword = (rule, value, callback) => {
    var reg = /^([a-zA-Z]|[0-9]|[a-zA-Z0-9]|[a-zA-Z0-9!#$%^&*-_()]){6,20}$/;
    if (value != null && value != "") {
        if (!(value.length >= 6 && value.length <= 20)) {
            callback(new Error("密码长度6-20"));
            return;
        }
        if (!reg.test(value)) {
            callback(
                new Error("密码格式不正确,应为字母、数字、特殊字符长度6-20")
            );
            return;
        }
    }
    callback();
};

5.支持角度验证

export var rot = (rule, value, callback) => {
    if (!value) {
        callback(new Error('请输入角度'))
    } else if (value[0] == '-' || isNaN(value) || value > 360) {
        callback(new Error('角度只可以输入0-360的数值'))
    } else {
        callback()
    }
}

6.正数校验

export var zhengNum = (rule, value, callback) => {
    if (!value) {
        callback(new Error('请输入值'))
    } else if (value[0] == '-' || isNaN(value)) {
        callback(new Error('只可以输入大于0的数值'))
    } else {
        callback()
    }
}

7.支持正负数校验

export var pos = (rule, value, callback) => {
    if (!value) {
        callback(new Error('请输入坐标'))
    } else if (value[0] == '-') {
        // 如果第一个字符为-号  进入判断
        var value1 = value.substr(1)
        if (isNaN(value1)) {
            callback(new Error('仅支持输入数字'))
        } else {
            callback()
        }
    } else {
        if (isNaN(value)) {
            callback(new Error('仅支持输入数字'))
        } else {
            callback()
        }
    }
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue前端,可以通过以下代码配置校验规则: ```javascript <template> <div> <form @submit.prevent="submitForm"> <div> <label for="name">Name</label> <input type="text" id="name" v-model="name" :class="{ 'is-invalid': $v.name.$error }"> <div v-if="!$v.name.required">Name is required</div> <div v-if="!$v.name.minLength">Name should have at least {{$v.name.$params.minLength.min}} characters</div> <div v-if="!$v.name.maxLength">Name should have at most {{$v.name.$params.maxLength.max}} characters</div> </div> <div> <label for="email">Email</label> <input type="email" id="email" v-model="email" :class="{ 'is-invalid': $v.email.$error }"> <div v-if="!$v.email.required">Email is required</div> <div v-if="!$v.email.email">Invalid email</div> </div> <button type="submit">Submit</button> </form> </div> </template> <script> import { required, minLength, maxLength, email } from 'vuelidate/lib/validators'; export default { data() { return { name: '', email: '', }; }, validations: { name: { required, minLength: minLength(3), maxLength: maxLength(20), }, email: { required, email, }, }, methods: { submitForm() { if (this.$v.$invalid) { return; } // Submit form here }, }, }; </script> ``` 在上面的代码,我们使用了vuelidate库来定义校验规则。该库提供了一些常用的校验器,如required、minLength、maxLength、email等。我们可以通过validations属性来定义校验规则,然后在模板使用$v来访问校验结果,并根据结果来显示错误信息。最后,在提交表单时,我们可以使用$v.$invalid来判断表单是否合法。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值