返回顶部
首页 > 资讯 > 前端开发 > VUE >JS如何通过正则表达式实现验证功能
  • 809
分享到

JS如何通过正则表达式实现验证功能

2024-04-02 19:04:59 809人浏览 安东尼
摘要

这篇文章主要为大家展示了“js如何通过正则表达式实现验证功能”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“JS如何通过正则表达式实现验证功能”这篇文章吧。1、验

这篇文章主要为大家展示了“js如何通过正则表达式实现验证功能”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“JS如何通过正则表达式实现验证功能”这篇文章吧。

1、验证电话号码或者手机号码


function checkPhoneNum(obj){
  if(/^((\d{3}-\d{8}|\d{4}-\d{7,8})|(1[3|5|7|8][0-9]{9}))$/.test(obj)){
    return true;
  }
}

2、验证地址(中文、英文、数字)


function checkAddress(obj){
  if(/^[\u4e00-\u9fa5a-zA-Z0-9]+$/.test(obj)){
    return true;
  }
}

3、验证用户名


function checkUserName(obj){
  if(/^[a-zA-Z0-9_-]{3,16}$/.test(obj)){
    return true;
  }
}

4、验证密码


function verifyPassword(obj){
  if(/^[a-z0-9_-]{5,18}$/.test(obj)){
    return true;
  }
}

5、验证企业税号


function checkTax(obj){
  if(/^[A-Z0-9]{15}$|^[A-Z0-9]{17}$|^[A-Z0-9]{18}$|^[A-Z0-9]{20}$/.test(obj)){
    return true;
  }
}

6、验证金额


function checkMoney(obj){
  if(/^([1-9][\d]{0,7}|0)(\.[\d]{1,2})?$/.test(obj)){
    return true;
  }
}

7、验证身份证号,包括大陆身份证号,和港澳台身份证号,当然这里都只是简单的规范一下,实际的像香港的身份证号最后的括号里面的校验位都是需要根据前面的

数字依据一定的加权算法算出来进行校验的,这里没有涉及到。如果需要特别精确则可以去研究一番。


function checkIdCard(obj){
  if(/(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/.test(obj)){
    return true;
  }
}

function checkGATIdCard(obj){
  var reg1 = /^[A-Z]{1,2}[0-9]{6}[\(|\(]?[0-9A-Z][\)|\)]?$/;//香港格式1 (香港身份证号码结构:XYabcdef(z))
  var reg2 = /^[A-Z][0-9]{8,12}$/;//香港格式2 (H60152555)
  var reg3 = /^[1|5|7][0-9]{6}[\(|\(]?[0-9A-Z][\)|\)]?$/;//澳门,8位数,不包含出生年月 格式为 xxxxxxx(x) 注:x全为数字,无英文字母 首位数只有1、5、7字开头的
  var reg4 = /^[a-zA-Z][0-9]{9}$/;//台湾:10位字母和数字
  if(reg1.test(obj) || reg2.test(obj) || reg3.test(obj) || reg4.test(obj)){
    return true;
  }
}

下面是比较权威的验证身份证号的写法:


// 构造函数,变量为15位或者18位的身份证号码
function IdCardValidate(CardNo) {
 this.Valid = false;
 this.ID15 = '';
 this.ID18 = '';
 this.Local = '';
 if (CardNo != null)
  this.SetCardNo(CardNo);
}
// 设置身份证号码,15位或者18位
IdCardValidate.prototype.SetCardNo = function(CardNo) {
 this.ID15 = '';
 this.ID18 = '';
 this.Local = '';
 CardNo = CardNo.replace(" ", "");
 var strCardNo;
 if (CardNo.length == 18) {
  pattern = /^\d{17}(\d|x|X)$/;
  if (pattern.exec(CardNo) == null)
   return;
  strCardNo = CardNo.toUpperCase();
 } else {
  pattern = /^\d{15}$/;
  if (pattern.exec(CardNo) == null)
   return;
  strCardNo = CardNo.substr(0, 6) + '19' + CardNo.substr(6, 9)
  strCardNo += this.GetVCode(strCardNo);
 }
 this.Valid = this.CheckValid(strCardNo);
}
// 校验身份证有效性
IdCardValidate.prototype.IsValid = function() {
 return this.Valid;
}
// 返回生日字符串,格式如下,1981-10-10
IdCardValidate.prototype.GetBirthDate = function() {
 var BirthDate = '';
 if (this.Valid)
  BirthDate = this.GetBirthYear() + '-' + this.GetBirthMonth() + '-'
    + this.GetBirthDay();
 return BirthDate;
}
// 返回生日中的年,格式如下,1981
IdCardValidate.prototype.GetBirthYear = function() {
 var BirthYear = '';
 if (this.Valid)
  BirthYear = this.ID18.substr(6, 4);
 return BirthYear;
}
// 返回生日中的月,格式如下,10
IdCardValidate.prototype.GetBirthMonth = function() {
 var BirthMonth = '';
 if (this.Valid)
  BirthMonth = this.ID18.substr(10, 2);
 if (BirthMonth.charAt(0) == '0')
  BirthMonth = BirthMonth.charAt(1);
 return BirthMonth;
}
// 返回生日中的日,格式如下,10
IdCardValidate.prototype.GetBirthDay = function() {
 var BirthDay = '';
 if (this.Valid)
  BirthDay = this.ID18.substr(12, 2);
 return BirthDay;
}
// 返回性别,1:男,0:女
IdCardValidate.prototype.GetSex = function() {
 var Sex = '';
 if (this.Valid)
  Sex = this.ID18.charAt(16) % 2;
 return Sex;
}
// 返回15位身份证号码
IdCardValidate.prototype.Get15 = function() {
 var ID15 = '';
 if (this.Valid)
  ID15 = this.ID15;
 return ID15;
}
// 返回18位身份证号码
IdCardValidate.prototype.Get18 = function() {
 var ID18 = '';
 if (this.Valid)
  ID18 = this.ID18;
 return ID18;
}
// 返回所在省,例如:上海市、浙江省
IdCardValidate.prototype.GetLocal = function() {
 var Local = '';
 if (this.Valid)
  Local = this.Local;
 return Local;
}
//获取身份证号码为18位时最后的验证位
IdCardValidate.prototype.GetVCode = function(CardNo17) {
 var Wi = new Array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2, 1);
 var ai = new Array('1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2');
 var cardNoSum = 0;
 for (var i = 0; i < CardNo17.length; i++)
  cardNoSum += CardNo17.charAt(i) * Wi[i];
 var seq = cardNoSum % 11;
 return Ai[seq];
}
IdCardValidate.prototype.CheckValid = function(CardNo18) {
 if (this.GetVCode(CardNo18.substr(0, 17)) != CardNo18.charAt(17))
  return false;
 if (!this.IsDate(CardNo18.substr(6, 8)))
  return false;
 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 (aCity[parseInt(CardNo18.substr(0, 2))] == null)
  return false;
 this.ID18 = CardNo18;
 this.ID15 = CardNo18.substr(0, 6) + CardNo18.substr(8, 9);
 this.Local = aCity[parseInt(CardNo18.substr(0, 2))];
 return true;
}
//验证18位数身份证号码中的生日是否是有效生日
IdCardValidate.prototype.IsDate = function(strDate) {
 var r = strDate.match(/^(\d{1,4})(\d{1,2})(\d{1,2})$/);
 if (r == null)
  return false;
 var d = new Date(r[1], r[2] - 1, r[3]);
 return (d.getFullYear() == r[1] && (d.getMonth() + 1) == r[2] && d
   .getDate() == r[3]);
}

把上面的代码放到一个js文件中,然后在(jsp)页面中引入该js文件,再调用即可

var checkIdCard = new IdCardValidate(id_card);
if(!checkIdCard.IsValid()){
  alert('您输入的身份证格式不正确!');
  return;
}

以上是“JS如何通过正则表达式实现验证功能”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网VUE频道!

--结束END--

本文标题: JS如何通过正则表达式实现验证功能

本文链接: https://lsjlt.com/news/72668.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • JS如何通过正则表达式实现验证功能
    这篇文章主要为大家展示了“JS如何通过正则表达式实现验证功能”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“JS如何通过正则表达式实现验证功能”这篇文章吧。1、验...
    99+
    2024-04-02
  • JS如何实现身份证信息验证正则表达式
    小编给大家分享一下JS如何实现身份证信息验证正则表达式,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!很多时候我们都是通过一组正则...
    99+
    2024-04-02
  • js如何使用正则表达式验证表单
    这篇文章给大家分享的是有关js如何使用正则表达式验证表单的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。效果图:图(1)初始图图(2)填入信息校验代码如下:<!DOCTYPE...
    99+
    2024-04-02
  • 微信小程序如何实现input正则表达式验证功能
    小编给大家分享一下微信小程序如何实现input正则表达式验证功能,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!具体如下:1、效果...
    99+
    2024-04-02
  • 原生js实现表单的正则验证(验证通过后才可提交)
    实现了如下功能: 1.用户名:onfouc显示msg规则;onkeyup计算字符,其中中文为两个字符;onblur,验证是否通过 2.邮箱:onblur 正则匹配,正则是根据自己的...
    99+
    2024-04-02
  • JS中如何使用正则表达式验证中文字符
    这篇文章主要为大家展示了“JS中如何使用正则表达式验证中文字符”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“JS中如何使用正则表达式验证中文字符”这篇文章吧。正...
    99+
    2024-04-02
  • 在nest.js中通过正则表达式正确设置验证的方法
    下面看下nest.js正则表达式设置验证的方法,代码如下所示: import { IsNotEmpty, Length, Matches, Max, Min } from "cl...
    99+
    2024-04-02
  • PyQt5实现QLineEdit正则表达式输入验证器
    本文主要介绍了QLineEdit正则表达式输入验证器,分享给大家,具体如下: from PyQt5 import QtWidgets, QtCore, QtGui, Qt imp...
    99+
    2024-04-02
  • JavaScript正则表达式实现注册信息校验功能
    目录注册信息校验需求案例分析Java和JavaScript正则表达式的对比 Java中也有正则表达式,默认情况下必须要精确匹配 ;而在JS中默认是模糊匹配,只要字符串包含了正则表达式...
    99+
    2024-04-02
  • Linux中如何实现验证邮件地址的正则表达式
    这篇文章主要介绍Linux中如何实现验证邮件地址的正则表达式,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!邮件地址的规范来自于 RFC 5322 。有一个网站 emailregex.com 专门列...
    99+
    2023-06-16
  • 如何在 Golang 中用正则表达式验证 JSON?
    如何在 go 中使用正则表达式验证 json?定义正则表达式模式,确保字符串以花括号开头,包含键值对,键用引号括起,值可以是字符串、数组或嵌套对象。使用正则表达式包编译正则表达式。检查 ...
    99+
    2024-05-13
    正则表达式 json验证 golang 键值对
  • JS正则表达式验证密码格式的示例分析
    这篇文章将为大家详细讲解有关JS正则表达式验证密码格式的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。 1.密码必须为6-18位字母、数字、特殊符号的:...
    99+
    2024-04-02
  • Python 正则表达式实现计算器功能
    需求: 用户输入运算表达式,终端显示计算结果 代码: # !/usr/bin/env/ python3 # -*- coding: utf-8 -*- """用户输入计算表达式,显示计算结果""" ...
    99+
    2022-06-04
    计算器 功能 正则表达式
  • JS正则表达式详解及身份证号码验证(简易版)
    目录JS正则表达式 匹配与搜索一、方括号,圆括号二、修饰符三、元字符四、量词身份证号码验证(简易版)身份证号码规则:1.地址码2.年份码3.月份码4.日期码5.顺序码6.校验码7.身...
    99+
    2024-04-02
  • 最新JS正则表达式验证邮箱和手机号实例(2022)
    验证邮箱的正则表达式: const regEmail = /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(\.[a-zA-Z0-9_-])+/ 或 ...
    99+
    2022-11-13
    js邮箱验证 验证手机号的正则表达式 正则表达式判断邮箱格式
  • PHP正则表达式实现中文去除功能
    标题:使用PHP正则表达式实现中文去除功能 中文在网页开发和文本处理中经常出现,但有时候我们可能需要去除文本中的中文字符。在PHP中,可以通过正则表达式来实现这一功能。在本文中,我将介...
    99+
    2024-04-02
  • 如何使用java正则表达式验证银行帐号
    本文小编为大家详细介绍“如何使用java正则表达式验证银行帐号”,内容详细,步骤清晰,细节处理妥当,希望这篇“如何使用java正则表达式验证银行帐号”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。前言银行帐号是在任...
    99+
    2023-07-05
  • 如何在 Go 中使用正则表达式验证密码?
    go 中使用正则表达式验证密码的方法如下:定义正则表达式模式,符合最低密码要求:至少 8 个字符,包含小写字母、大写字母、数字和特殊字符。使用 regexp 包中的 mustcompil...
    99+
    2024-05-14
    正则表达式 密码验证
  • Java使用正则表达式如何实现查找文本功能
    本篇文章为大家展示了Java使用正则表达式如何实现查找文本功能,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。具体如下:REMatch.java:package reMatch;import java...
    99+
    2023-05-31
    java 正则表达式 ava
  • Java如何使用正则表达式实现替换文本功能
    本篇文章给大家分享的是有关Java如何使用正则表达式实现替换文本功能,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。具体如下:package replaceDemo;import...
    99+
    2023-05-31
    java 正则表达式 ava
软考高级职称资格查询
推荐阅读
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作