el-form表单验证身份证合法性和手机号格式

Vue3:集成wangEditor富文本编辑器 webpack的loader到底是什么样的?两小时带你写一个自己loader。打开全栈工匠技能包-1小时轻松掌握SSR。谁说前端不用懂安全,XSS跨站脚本的危害。网易内部VUE自定义插件库NPM集成。生产环境下如歌部署Node.js。两小时精通jq+bs插件开发。服务器端图片上传接口。 阅读详情

一、需求:身份证号:根据身份证编码规则在表单输入框添加校验,手机号:验证基本格式。

1、验证form表单身份证合法性和手机号格式,页面效果如下
在这里插入图片描述

2、身份证编码规则

排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码和一位校验码。其含义如下:第1至6位为地址码,表示这个人常住户口所在的行政区划代码,顺序为省(直辖市,自治区,特别行政区)、地级市、县,分别2位数;第7至14位是出生日期码,表示出生的年、月、日,年、月、日分别用4位、2位(不足两位加0)、2(同上)位数字表示。第15至17位是顺序码:表示在同一地址码所表示的范围内,对同年、同月、同日出生的人编定的顺序号,顺序码的奇数分配给男性,偶数分配给女性。最后一位是校验码,通过前17位数字根据一定计算得出。

3、实现方法,具体注释在代码里

<template>
  <div>
<!--    表单-->
    <el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="100px" class="demo-ruleForm" size="small">
      <el-form-item label="身份证号" prop="idCard">
        <el-input v-model="ruleForm.idCard" maxlength="18"></el-input>
      </el-form-item>
      <el-form-item label="手机号" prop="phone">
        <el-input v-model="ruleForm.phone" maxlength="11"></el-input>
      </el-form-item>
      <el-form-item>
        <el-button type="primary" @click="submitBtn" round class="currency-btn">验证</el-button>
      </el-form-item>
    </el-form>
  </div>
</template>

<script>
export default {
  name: "demo",
  data() {
    // 身份证验证
    var validatorIdCard = (rule, value, callback) => {
    // 地区
      var aCity={ 11:"北京",12:"天津",13:"河北",14:"山西",15:"内蒙古",
        21:"辽宁",22:"吉林",23:"黑龙江",
        31:"上海",32:"江苏",33:"浙江",34:"安徽",35:"福建",36:"江西",37:"山东",
        41:"河南",42:"湖北",43:"湖南",44:"广东",45:"广西",46:"海南",50:"重庆",
        51:"四川",52:"贵州",53:"云南",54:"西藏",
        61:"陕西",62:"甘肃",63:"青海",64:"宁夏",65:"新疆",
        71:"台湾",81:"香港",82:"澳门",91:"国外"};
        // 验证长度
      if(!/^\d{17}(\d|x)$/i.test(value)){
        callback(new Error('您输入的身份证号长度或格式错误,请输入正确的身份证号'));
        return;
      }
      // 验证前两位是否为省份代码
      value=value.replace(/x$/i,"a");
      if(aCity[parseInt(value.substr(0,2))]==null){
        callback(new Error('您输入的身份证号长度或格式错误,请输入正确的身份证号'));
        return;
      }
      // 身份证上的出生年月校验
      var sBirthday=value.substr(6,4)+"-"+Number(value.substr(10,2))+"-"+Number(value.substr(12,2));
      var d=new Date(sBirthday.replace(/-/g,"/")) ;
      if(sBirthday!=(d.getFullYear()+"-"+ (d.getMonth()+1) + "-" + d.getDate())){
        callback(new Error('您输入的身份证号不合法,请输入正确的身份证号'));
        return;
      }
      // 身份证校验位判断
      var iSum=0 ;
      for(var i=17;i>=0;i--) {
        iSum += (Math.pow(2,i) % 11) * parseInt(value.charAt(17 - i),11) ;
      }
      if(iSum%11!=1){
        callback(new Error('您输入的身份证号不合法,请输入正确的身份证号'));
        return;
      }
      callback()
    };
    return {
      ruleForm:{},
      rules:{
        idCard: [
          { required: true, validator: validatorIdCard, trigger: 'blur' },
        ],
        phone: [
        //非空验证
          { required: true, message: '请输入手机号', trigger: 'blur' },
        // 手机号格式
          {
            required: true,
            pattern: /^1(3[0-9]|4[01456879]|5[0-35-9]|6[2567]|7[0-8]|8[0-9]|9[0-35-9])\d{8}$/,
            message: '请输入正确的手机号码',
            trigger: 'blur',
          },
        ],
      }
    };
  },
  methods: {
  //表单提交方法
    submitBtn() {
      this.$refs.ruleForm.validate((valid) =>{
        if(valid) {
        console.log('验证通过')
        }
      })
    },
  },
}
</script>

<style scoped>
.demo-ruleForm {
  margin: 50px auto;
  width: 50%;
}
.currency-btn{
  padding: 10px 60px !important;
  box-shadow: 0 5px 9px 0 rgba(245,67,118,0.3) !important;
}
</style>

4、后续有常用验证再补充,就这样,再见~

【VUE+Elemet 】最全正则验证 + 表单验证 + 注意事项 最全最全正则验证 + 表单验证 + 注意事项 一、正则验证 1.输入字母/数字/下划线: 2.请输入中英文/数字/下划线: 3.请输入中文/英文: 4.规范金额: 5.用户名不能全是数字: 6.中文: 7.非中文: 8.限制长度: 9.数字: 10.正整数及整数: 11.请输入数字(可正负) 12.请输入数字/小数点: 13.请输入0-9999 14.大写,小写,数字,特殊字符,至少上面的三种,至少八位 15.自定义校验 16.是否合法IP地址: 17.是否手 阅读详情

相关推荐

正则-身份证号严格模式校验

备注:原文作者忘记了!!!是之前自己项目中用到找的,线下也忘记是谁了,此文章作为个人笔记及分享吧! 页面使用 <el-form :model="numberValidateForm" ref="numberValidateForm" label-width="100px" class="demo-ruleForm"> <el-form-item label="身份证号" prop="idNum" > <el-input v-model="num.

weixin_43153138的博客 964

el-form表单手机号验证

el-form表单手机号验证。

weixin_52862941的博客 2920

从标准到实战:详解IEC 61000-4-2下的ESD电路防护设计

本文深入解析IEC 61000-4-2标准下的ESD电路防护设计,从静电防护的基础原理到实战应用。详细介绍了接触放电与空气放电的区别、防护器件选型要点(如TVS管和压敏电阻)以及PCB布局的黄金法则,帮助工程师有效提升电子产品的抗静电能力,确保设备在严苛环境下的稳定运行。

weixin_33704234的博客 513

前端-el-form表单校验,如何校验手机号和身份证号

31:"上海",32:"江苏",33:"浙江",34:"安徽",35:"福建",36:"江西",37:"山东",41:"河南",42:"湖北",43:"湖南",44:"广东",45:"广西",46:"海南",50:"重庆",callback(new Error('您输入的身份证号长度或格式错误,请输入正确的身份证号'));callback(new Error('您输入的身份证号长度或格式错误,请输入正确的身份证号'));61:"陕西",62:"甘肃",63:"青海",64:"宁夏",65:"新疆",

qq_42371932的博客 2540

ESP32 Arduino学习篇 (一) 引脚和串口的基本使用

简单来讲arduino就是通过源代码控制开发板的信号输入输出从而实现对一些电子元件的控制,例如LED灯,蜂鸣器,按键arduino程序首先来讲arduino程序是基于C语言,而实现类似对于LED灯和蜂鸣器的简单控制只需简单C语言知识即可实现。arduino程序是基于函数的,而在arduino的库有很多函数,我们只需要调用即可。arduino的程序主体是**setup()函数和loop()**函数以及其它在使用过程中需要构建的函数:setup()函数。

DOF526570的博客 1万+

STM32-printf重定向串口输出

声明 本文内容转载至https://www.mculover666.cn/posts/2251182441/ 1.printf与fputc printf 定义在 <stdio.h> 头文件中,如下: int printf(const char *format, ...); printf 函数根据 format 字符串给出的格式打印输出到 stdout(标准输出)中,当然,printf 函数是不会一个字符一个字符去输出,它会调用更底层的 I/O 函数:fputc去逐个字符打印。 fputc 也定

qq_41215167的博客 4540

Vue 正则表达式验证表单字段(如用户名/密码/真实姓名/身份证/手机号/邮箱)的合法性

1. 给页面表单对象添加验证属性 由于我的项目使用的el-form,则给el-form添加属性 :rules="registerRules" ref="registerForm" 为el-form-item每个表单子项添加 prop 属性, 例如 <el-form-item prop="username"> <el-input name="username"...

寻思旧京洛 1万+

STM32+IR2104S的H桥电机驱动电路详解

  电机:俗称“马达”,依据电磁感应定律实现电能转换或传递的一种电磁装置。包括:电动机和发电机。   “电动机在电路中是用字母M表示,它的主要作用是产生驱动转矩;作为用电器或各种机械的动力源,发电机在电路中用字母G表示,它的主要作用是利用机械能转化为电能。   电机控制:对电机的启动、加速、运转、减速及停止进行的控制。 直流有刷电机   直流有刷电机(Brushed DC,简称BDC),由于其结构简单,操控方便,成本低廉,具有良好的扁动和调速性能等优势,被广泛应用于各种动力器件中,小到玩具,按钮调节式汽

果果小师弟的博客 5万+

element-ui input输入手机号码、身份证号码验证

// 验证手机号码 export function checkPhoneNumber(rule, value, callback) { const reg = /^1[3|4|5|6|7|8|9]\d{9}$/; if (!value) { return callback(new Error('请填写手机号码!')) } else if (!reg.test(value)) {...

qq_26642611的博客 8724

uniapp监听扫码枪键盘事件|无输入框式监听

一般的扫码枪通过USB或蓝牙连接手机或电脑,充当的是一个外接设备。当扫码后,扫码枪会自动识别内容,然后向连接的电脑或手机发送键盘事件keydown或keyup。

tcy9099的专栏 9753

基于STM32的HC-SR04超声波模块测距(新手级)

本人是嵌入式新手,学习了STM32的部分内容,最近想找些项目做,然后顺便学习了一下HC-SR04超声波模块,学习过程中也参考了一些大佬的文章。本文记录了自己的学习方法和学习过程,同时也希望能和各位大佬交流讨论。

weixin_63758495的博客 2207

【Vue项目实战】常见的el-form表单校验整理==>异步调接口校验手机号唯一性

本文主要总结elementUI 中el-form的表单校验,手机号,邮箱,密码,并且提供了异步校验手机号唯一性的方法。

Sabrina_cc的博客 4379

LCD工程师必看:MIPI DSI的LP/HS模式切换全流程拆解(附高通平台实测)

本文为LCD工程师深度解析MIPI DSI接口中低速(LP)与高速(HS)模式切换的全流程。文章结合高通平台实测波形,从协议状态机、时序关键参数到实战调试案例,系统拆解了模式切换的本质、协同机制及常见问题排查方法,重点阐述了LP模式在低功耗控制与HS模式在高速数据传输中的核心作用与切换时序。

weixin_29240711的博客 547

el-form 表单动态验证 ,比如证件类型

ele验证

m0_66051368的博客 1732

【Zephyr存储专题】06_存储块设备驱动开发(Nand Flash)

本文介绍了基于Zephyr系统的NAND Flash驱动实现方案,重点阐述了Flash驱动模型的核心架构和关键API设计。

zero的博客 1805

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

身份证号码合法性校验 前端

var idNumberRule= (rule, value, callback) => { const reg = /^(^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$)|(^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])((\d{4})|\d{3}[Xx])$)$/ if (this.FormData.idnum === '' || this.FormData.i.

Zykon 2706

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

el-form 验证手机号码

代码】el-form 验证手机号码。

qq_58946831的博客 2601

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

el-form 表单 单个表单选项验证 手机号 验证

正常的表单验证 : <el-form :model="ruleForm" :rules="rules" ref="ruleForm" class="search_area"> <el-form-item label="联系电话" prop="phone" class="itemRequiredStyle"> <el-input v-mod...

冰魂魄的博客 6276

form表单数字校验(二)——邮箱校验-当前页面

form表单数字校验(二)——邮箱校验-当前页面 效果 代码 index.vue <el-form-item v-if='!isDisabled' label='邮箱'> <el-input v-model.trim='ruleForm.email' class='n_form_is' ></el-input> </el-form-item> <el-form-item v-else label

weixin_44867717的博客 1450

element的form表单校验(身份证号、手机号、整数、汉字、for循环列表)

element的form表单校验(身份证号、手机号、整数、汉字、for循环列表)

weixin_41549971的博客 2425

vue表单el-form-item校验电话、身份证号以及多个prop

校验身份证号 校验多个prop 方式可能比较简单粗暴 直接套了多个el-form-item,然后调了一下样式

小香菜子的博客 1477

elementUi 校验邮箱、手机号、身份证、是否正确

elementUi 校验邮箱、手机号、身份证、是否正确 并根据身份证号码,计算出生年月日。

前端程序猿的博客 3603

ElementUI中form表单组件自定义手机号验证规则

<el-form :model="ruleForm" status-icon :rules="rules" ref="ruleForm" label-width="100px" class="demo-ruleForm"> <el-form-item label="手机号" prop="phone"> <el-input type="text" v-model="ruleForm.phone"></el-input> </el-form-

年少不知曲中意,再听已是曲终人 4814

el-form表单校验手机号

【代码】el-form表单校验手机号。

敲代码无敌小奶龙的博客 383

vue element-ui的form表单校验总结,动态校验、自定义校验(用正则校验手机号码、数字、url、中文)

data() {return {//在rules属性填写相关字段的校验规则rules: {{ required: true, message: "必填" },{ min: 6, max: 18, message: '长度在 6 到 18 个字符', trigger: 'blur' }],email:[{ type: 'email', message: '请输入正确的邮箱地址', trigger: 'change' }],//自定义校验name:[

TangMonk的博客 3211

vue3中,form表单校验之特殊字符校验、手机号、身份证号、百分制数字 & route和router的写法 & setup的两种用法 & rules中校验之blur和change

【代码】vue3中,form表单校验之特殊字符校验、手机号、身份证号、百分制数字 & route和router的写法 & setup的两种用法 & rules中校验之blur和change。

weixin_44867717的博客 4858
上一篇: vue打包后线上报错Error: Loading chunk 20 failed
下一篇: vue使用wd-calendar 时间遇到的坑
前端小小白~
博客等级 码龄7年 16粉丝 24原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值