常用的表单校验规则——邮箱/QQ/身份证号码/微信/电话/数字字母/整数/文本/密码等

简介: 常用的表单校验规则——邮箱/QQ/身份证号码/微信/电话/数字字母/整数/文本/密码等

1.邮箱校验规则1

//邮箱校验
export const validateEmail = async (RuleObject, value) => {
  // const reg = new RegExp(/^[A-Za-z0-9\u4e00-\u9fa5]+@[a-zA-Z0-9_-]+$/)
  const reg = new RegExp(/^[a-zA-Z0-9_-]+@([a-zA-Z0-9]+\.)+(com|cn|net|org)$/)
  if (value) {
    if (!reg.test(value)) {
      return Promise.reject('请输入正确的邮箱');
    } else {
      return Promise.resolve();
    }
  } else {
    return Promise.resolve();
  }
}

2.邮箱校验规则2

export const validateEmail1 = async (RuleObject, value) => {
  const reg = new RegExp(/^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/)
  if (value) {
    if (!reg.test(value)) {
      return Promise.reject('请输入正确的邮箱');
    } else {
      return Promise.resolve();
    }
  } else {
    return Promise.resolve();
  }
}

3.QQ校验规则

//qq校验
export const validateQQ = async (RuleObject, value) => {
  const reg = new RegExp(/^[1-9][0-9]{4,10}$/);
  if (value) {
    if (!reg.test(value)) {
      return Promise.reject('请输入正确的QQ号');
    } else {
      return Promise.resolve();
    }
  } else {
    return Promise.resolve();
  }
}

4.身份证号码校验规则

//身份证号校验
export const validateIdCard = async (RuleObject, value) => {
  const reg = new RegExp(/(^\d{8}(0\d|10|11|12)([0-2]\d|30|31)\d{3}$)|(^\d{6}(18|19|20)\d{2}(0[1-9]|10|11|12)([0-2]\d|30|31)\d{3}(\d|X|x)$)/);
  const reg1 = new RegExp(/^[A-Z]\d{7,11}$/)
  if (value) {
    if (!reg1.test(value)&&!reg.test(value)) {
      return Promise.reject('请输入正确的身份证号');
    } else {
      return Promise.resolve();
    }
  } else {
    return Promise.resolve();
  }
}

5.微信校验规则

//微信校验
export const validateCharts = async (RuleObject, value) => {
  const reg = new RegExp(/^[a-zA-Z][-_a-zA-Z0-9]{5,19}$/);
  if (value) {
    if (!reg.test(value)) {
      return Promise.reject('请输入正确的微信号');
    } else {
      return Promise.resolve();
    }
  } else {
    return Promise.resolve();
  }
}

6.电话校验规则

//电话校验
export const validatPhone = async (RuleObject, value) => {
  const reg = new RegExp(/^(?:(?:\+|00)86)?1[3-9]\d{9}$/);
  if (value) {
    if (!reg.test(value)) {
      return Promise.reject('请输入正确的手机号');
    } else {
      return Promise.resolve();
    }
  } else {
    return Promise.resolve();
  }
}

7.银行卡号校验规则

//银行卡号校验
export const validatBankCard = async (RuleObject, value) => {
  const reg = new RegExp(/^[1-9]\d{9,29}$/);
  if (value) {
    if (!reg.test(value)) {
      return Promise.reject('请输入正确的银行卡号');
    } else {
      return Promise.resolve();
    }
  } else {
    return Promise.resolve();
  }
}

8.数字字母校验规则

//数字字母校验
export const validatNumberLetter = async (RuleObject, value) => {
  const reg = new RegExp(/^([A-Z]|[a-z]|[\d])*$/);
  if (value) {
    if (!reg.test(value)) {
      return Promise.reject('请输入正确的工号');
    } else {
      return Promise.resolve();
    }
  } else {
    return Promise.resolve();
  }
}

9.整数校验规则

//整数校验
export const validateInitNumber = async (RuleObject, value, min, max) => {
  if (value !== '' && value !== null && value !== undefined) {
    if (!Number(value) && value !== 0) {
      return Promise.reject('请输入数字');
    } else if (!Number.isInteger(Number(value))) {
      return Promise.reject('请输入整数');
    } else {
      if (max) {
        value = Number(value);
        if (value > max || value < min) {
          return Promise.reject('请输入' + min + '到' + max + '之间的数值');
        } else {
          return Promise.resolve();
        }
      } else {
        return Promise.resolve();
      }
    }
  } else {
    return Promise.resolve();
  }
}

10.数字校验规则

//数字校验
export const validateNumber = async (RuleObject, value, min, max) => {
  if (value !== '' && value !== null && value !== undefined) {
    if (!Number(value) && value !== 0) {
      return Promise.reject('请输入数字');
    } else {
      if (max) {
        if (value > max || value < min) {
          return Promise.reject('请输入' + min + '到' + max + '之间的数值');
        } else {
          return Promise.resolve();
        }
      } else {
        return Promise.resolve();
      }
    }
  } else {
    return Promise.resolve();
  }
}

11.文本校验规则

//文本校验
export const validateInitTxt = async (RuleObject, value, min, max) => {
  if (value) {
    if (max) {
      if (value.length > max || value.length < min) {
        return Promise.reject('请输入' + min + '到' + max + '个字符');
      } else {
        return Promise.resolve();
      }
    } else {
      return Promise.resolve();
    }
  } else {
    return Promise.resolve();
  }
}

12.密码校验规则

//密码校验
export const validatePWD = async (RuleObject, value, min, max) => {
  if (value) {
    if (max) {
      if (value.length > max || value.length < min) {
        return Promise.reject('请输入' + min + '到' + max + '个字符');
      } else {
        return Promise.resolve();
      }
    } else {
      return Promise.resolve();
    }
  } else {
    return Promise.resolve();
  }
}

最后附上rules中的使用方法

import { validateEmail,validateInitTxt, validateQQ, validateIdCard, validatPhone,validateEmail1, validatBankCard, validateInitNumber,validateNumber,validateCharts,validatNumberLetter  } from './validateForm.js';
export default  {
    '姓名': [
        {
            required: true, message: '请输入名字'
        },
        {
            validator: async (RuleObject, value) => validateInitTxt(RuleObject, value, 1, 30), trigger: 'change'
        }
    ],
    '年龄': [
        {
            required: true, message: '请输入年龄'
        },
        {
            validator: async (RuleObject, value) => validateInitNumber(RuleObject, value, 16, 65), trigger: 'change'
        }
    ],
    '身高': [
        {
            required: true, message: '请输入身高'
        },
        {
            validator: async (RuleObject, value) => validateInitNumber(RuleObject, value, 140, 210), trigger: 'change'
        }
    ],
    '体重': [
        {
            required: true, message: '请输入体重'
        },
        {
            validator: async (RuleObject, value) => validateNumber(RuleObject, value, 35, 200), trigger: 'change'
        }
    ],
    '邮件': [
        {
            required: true, message: '请输入邮件'
        },
        {
            validator: validateEmail, trigger: 'change'
        }
    ],
    '邮箱': [
        {
            required: true, message: '请输入邮箱'
        },
        {
            validator: validateEmail1, trigger: 'change'
        }
    ],
    'QQ': [
        {
            required: true, message: '请输入QQ'
        },
        {
            validator: validateQQ, trigger: 'change'
        }
    ],
    '微信': [
        {
            required: true,message: '请输入微信'
        },
        {
            validator: validateCharts, trigger: 'change'
        }
    ],
    '身份证': [
        {
            required: true, message: '请输入身份证号'
        },
        {
            validator: validateIdCard, trigger: 'change'
        }
    ],
    '电话': [
        {
            required: true, message: '请输入联系电话'
        },
        {
            validator: validatPhone, trigger: 'change'
        }
    ],
    '银行卡': [
        {
            required: true,message: '请输入银行卡卡号'
        },
        {
            validator: validatBankCard, trigger: 'change'
        }
    ],
    '留言板': [
        {
            required: true,message: '请输入'
        },
        {
            validator: async (RuleObject, value) => validateInitTxt(RuleObject, value, 1, 300), trigger: 'change'
        }
    ],
    '输入框50': [
        {
            required: true,message: '请输入'
        },
        {
            validator: async (RuleObject, value) => validateInitTxt(RuleObject, value, 1, 50), trigger: 'change'
        }
    ],
    '输入框30': [
        {
            required: true,message: '请输入'
        },
        {
            validator: async (RuleObject, value) => validateInitTxt(RuleObject, value, 1, 30), trigger: 'change'
        }
    ],
    '下拉框': [
        {
            required: true, message: '请选择'
        }
    ],
    '整数': [
        {
            required: true,message: '请输入'
        },
        {
            validator: validateInitNumber, trigger: 'change'
        }],
    '组合':[
        {
            required: true,message: '请输入'
        },
        {
            validator: validatNumberLetter, trigger: 'change'
        },
    ],
    '浮点数': [
        {
            required: true,message: '请输入'
        },
        {
            validator: validateNumber, trigger: 'change'
        }]
}


目录
相关文章
|
数据安全/隐私保护
常用的表单校验规则——邮箱/QQ/身份证号码/微信/电话/数字字母/整数/文本/密码等
常用的表单校验规则——邮箱/QQ/身份证号码/微信/电话/数字字母/整数/文本/密码等
471 0
|
小程序 API 开发工具
扫描设备二维码携带参数跳转到微信小程序指定页面(微信小程序二维码配置规则)
扫描设备二维码携带参数跳转到微信小程序指定页面(微信小程序二维码配置规则)
1037 0
扫描设备二维码携带参数跳转到微信小程序指定页面(微信小程序二维码配置规则)
|
存储 缓存 小程序
小程序获取不到用户头像和昵称返回微信用户问题解决,即小程序授权获取用户头像规则调整的最新解决方案
小程序获取不到用户头像和昵称返回微信用户问题解决,即小程序授权获取用户头像规则调整的最新解决方案
495 0
[今日干货]微信搜一搜的文章排名有什么规则
昨天有人问到了微信搜一搜的文章排名有什么规则啥的,今天我来给大家讲一下吧~总的来说呢,高排名的文章常常是:拥有高粉丝数、高互动力、原创度高、以及拥有认证、正确关键词的公众号文章~ 鉴于微信巨大的日活及日均阅读量,我们可以考虑将“搜一搜”入口利用起来,有效提高公众号曝光度及文章阅读量。
1298 0
微信公众平台群发规则说明
公众平台群发人数的上限微信公众平台群发消息的人数没有限制,只能群发给粉丝,不支持群发给非订阅用户。
1339 0
微信支付默认推荐关注规则
1. 刷卡支付默认有推荐关注2. 公众号支付和扫码支付需要5元以上才有推荐关注3. APP支付默认没有,需要申请配置,需要有一定用户规模才可以申请4. 已经关注的不展示推荐栏5. 服务号未设置头像的在IOS不展示推荐关注栏6.
1200 0
|
2月前
|
消息中间件 人工智能 Java
抖音微信爆款小游戏大全:免费休闲/竞技/益智/PHP+Java全筏开源开发
本文基于2025年最新行业数据,深入解析抖音/微信爆款小游戏的开发逻辑,重点讲解PHP+Java双引擎架构实战,涵盖技术选型、架构设计、性能优化与开源生态,提供完整开源工具链,助力开发者从理论到落地打造高留存、高并发的小游戏产品。
|
3月前
|
小程序 JavaScript API
uni-halo + 微信小程序开发实录:我的第一个作品诞生记
这篇文章介绍了使用uni-halo框架进行微信小程序开发的过程,包括选择该框架的原因、开发目标以及项目配置和部署的步骤。
129 0
uni-halo + 微信小程序开发实录:我的第一个作品诞生记
|
9月前
|
自然语言处理 搜索推荐 小程序
微信公众号接口:解锁公众号开发的无限可能
微信公众号接口是微信官方提供的API,支持开发者通过编程与公众号交互,实现自动回复、消息管理、用户管理和数据分析等功能。本文深入探讨接口的定义、类型、优势及应用场景,如智能客服、内容分发、电商闭环等,并介绍开发流程和工具,帮助运营者提升用户体验和效率。未来,随着微信生态的发展,公众号接口将带来更多机遇,如小程序融合、AI应用等。
|
6月前
|
小程序 前端开发 Android开发
小程序微信分享功能如何开发?开放平台已绑定仍不能使用的问题?-优雅草卓伊凡
小程序微信分享功能如何开发?开放平台已绑定仍不能使用的问题?-优雅草卓伊凡
1266 29
小程序微信分享功能如何开发?开放平台已绑定仍不能使用的问题?-优雅草卓伊凡

热门文章

最新文章