首页 > 其他分享 >JS正则常用校验

JS正则常用校验

时间:2024-03-11 14:14:28浏览次数:27  
标签:const log 校验 JS 正则 str console reg

手机号(mobile phone)中国(严谨), 根据工信部2019年最新公布的手机号段

1 const reg = /^(?:(?:\+|00)86)?1(?:(?:3[\d])|(?:4[5-79])|(?:5[0-35-9])|(?:6[5-7])|(?:7[0-8])|(?:8[\d])|(?:9[189]))\d{8}$/;
2 const str = "19119255642";
3 console.log(`校验 ${reg.test(str) ? "正确" : "错误"}`);

email(邮箱)

1 const reg = /^(([^<>()[\]\\.,;:\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,}))$/;
2 const str = "[email protected]";
3 console.log(`校验 ${reg.test(str) ? "正确" : "错误"}`);

座机(tel phone)电话(国内),如: 0341-86091234

1 const reg = /^(?:(?:\d{3}-)?\d{8}|^(?:\d{4}-)?\d{7,8})(?:-\d+)?$/;
2 const str = "0936-4211235";
3 console.log(`校验 ${reg.test(str) ? "正确" : "错误"}`);

 

身份证号(2代,18位数字),最后一位是校验位,可能为数字或字符X

1 const reg = /^[1-9]\d{5}(?:18|19|20)\d{2}(?:0[1-9]|10|11|12)(?:0[1-9]|[1-2]\d|30|31)\d{3}[\dXx]$/;
2 const str = "12345619991205131x";
3 console.log(`校验 ${reg.test(str) ? "正确" : "错误"}`);

中文姓名

1 const reg = /^(?:[\u4e00-\u9fa5·]{2,16})$/;
2 const str = "韩小韩";
3 console.log(`校验 ${reg.test(str) ? "正确" : "错误"}`);

英文姓名

1 const reg = /(^[a-zA-Z][a-zA-Z\s]{0,20}[a-zA-Z]$)/;
2 const str = "James Han";
3 console.log(`校验 ${reg.test(str) ? "正确" : "错误"}`);

网址(URL)

1 const reg =
2   /^(((ht|f)tps?):\/\/)?([^!@#$%^&*?.\s-]([^!@#$%^&*?.\s]{0,63}[^!@#$%^&*?.\s])?\.)+[a-z]{2,6}\/?/;
3 const str = "https://www.vvhan.com";
4 console.log(`校验 ${reg.test(str) ? "正确" : "错误"}`);

必须带端口号的网址(或ip)

1 const reg = /^((ht|f)tps?:\/\/)?[\w-]+(\.[\w-]+)+:\d{1,5}\/?$/;
2 const str = "https://www.vvhan.com:80";
3 console.log(`校验 ${reg.test(str) ? "正确" : "错误"}`);

银行卡号(10到30位, 覆盖对公/私账户, 参考[微信支付]

1 const reg = /^[1-9]\d{9,29}$/;
2 const str = "6222026006705354000";
3 console.log(`校验 ${reg.test(str) ? "正确" : "错误"}`);

帐号是否合法(字母开头,允许5-16字节,允许字母数字下划线组合

1 const reg = /^[a-zA-Z]\w{4,15}$/;
2 const str = "han_666666";
3 console.log(`校验 ${reg.test(str) ? "正确" : "错误"}`);

中文/汉字

1 const reg = /^(?:[\u3400-\u4DB5\u4E00-\u9FEA\uFA0E\uFA0F\uFA11\uFA13\uFA14\uFA1F\uFA21\uFA23\uFA24\uFA27-\uFA29]|[\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879][\uDC00-\uDFFF]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0])+$/;
2 const str = "韩小韩博客";
3 console.log(`校验 ${reg.test(str) ? "正确" : "错误"}`);

密码强度校验,最少6位,包括至少1个大写字母,1个小写字母,1个数字,1个特殊字符

1 const reg = /^\S*(?=\S{6,})(?=\S*\d)(?=\S*[A-Z])(?=\S*[a-z])(?=\S*[!@#$%^&*? ])\S*$/;
2 const str = "han@666vvx,";
3 console.log(`校验 ${reg.test(str) ? "正确" : "错误"}`);

微信号(wx),6至20位,以字母开头,字母,数字,减号,下划线

1 const reg = /^[a-zA-Z][-_a-zA-Z0-9]{5,19}$/;
2 const str = "kd_-666";
3 console.log(`校验 ${reg.test(str) ? "正确" : "错误"}`);

邮政编码(中国)

1 const reg = /^(0[1-7]|1[0-356]|2[0-7]|3[0-6]|4[0-7]|5[1-7]|6[1-7]|7[0-5]|8[013-6])\d{4}$/;
2 const str = "734500";
3 console.log(`校验 ${reg.test(str) ? "正确" : "错误"}`);

中文和数字

1 const reg = /^((?:[\u3400-\u4DB5\u4E00-\u9FEA\uFA0E\uFA0F\uFA11\uFA13\uFA14\uFA1F\uFA21\uFA23\uFA24\uFA27-\uFA29]|[\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879][\uDC00-\uDFFF]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0])|(\d))+$/;
2 const str = "韩小韩好6啊";
3 console.log(`校验 ${reg.test(str) ? "正确" : "错误"}`);

匹配连续重复的字符

1 const reg = /(.)\1+/;
2 const str = "112233";
3 console.log(`校验 ${reg.test(str) ? "正确" : "错误"}`);

统一社会信用代码

1 const reg = /^[0-9A-HJ-NPQRTUWXY]{2}\d{6}[0-9A-HJ-NPQRTUWXY]{10}$/;
2 const str = "91110108772551611J";
3 console.log(`校验 ${reg.test(str) ? "正确" : "错误"}`);

子网掩码(不包含 0.0.0.0)

1 const reg = /^(254|252|248|240|224|192|128)\.0\.0\.0|255\.(254|252|248|240|224|192|128|0)\.0\.0|255\.255\.(254|252|248|240|224|192|128|0)\.0|255\.255\.255\.(255|254|252|248|240|224|192|128|0)$/;
2 const str = "255.255.255.0";
3 console.log(`校验 ${reg.test(str) ? "正确" : "错误"}`);

车牌号(新能源)

1 const reg = /^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领][A-HJ-NP-Z](?:((\d{5}[A-HJK])|([A-HJK][A-HJ-NP-Z0-9][0-9]{4}))|[A-HJ-NP-Z0-9]{4}[A-HJ-NP-Z0-9挂学警港澳])$/;
2 const str = "京AD92035";
3 console.log(`校验 ${reg.test(str) ? "正确" : "错误"}`);

车牌号(非新能源)

1 const reg = /^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领][A-HJ-NP-Z][A-HJ-NP-Z0-9]{4}[A-HJ-NP-Z0-9挂学警港澳]$/;
2 const str = "京A00599";
3 console.log(`校验 ${reg.test(str) ? "正确" : "错误"}`);

车牌号(新能源+非新能源)

1 const reg = /^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领][A-HJ-NP-Z][A-HJ-NP-Z0-9]{4,5}[A-HJ-NP-Z0-9挂学警港澳]$/;
2 const str = "京A12345D";
3 console.log(`校验 ${reg.test(str) ? "正确" : "错误"}`);

护照(包含香港、澳门)

1 const reg = /(^[EeKkGgDdSsPpHh]\d{8}$)|(^(([Ee][a-fA-F])|([DdSsPp][Ee])|([Kk][Jj])|([Mm][Aa])|(1[45]))\d{7}$)/;
2 const str = "s28233515";
3 console.log(`校验 ${reg.test(str) ? "正确" : "错误"}`);

 

来源:https://cloud.tencent.com/developer/article/2097621

  

 

标签:const,log,校验,JS,正则,str,console,reg
From: https://www.cnblogs.com/DeerLin/p/18065952

相关文章

  • js获取URL参数
    1.正则functionqueryURLparamsRegEs5(url){letobj={}letreg=/([^?=&]+)=([^?=&]+)/g//使用arguments伪数组url.replace(reg,function(){//arguments[1]是参数的key;arguments[2]是参数的valueobj[arguments[1]]=arguments[2]......
  • python json格式转url参数&分割, url参数转json格式
    前言全局说明一、json格式转url参数&分割>>>fromurllib.parseimporturlencode>>>params={'user':'admin','pwd':'123456'}>>>print(urlencode(params))二、url参数转json格式>>>importj......
  • fabricjs怎么添加网格线
    html文件:1<canvasid="c"width="600"height="400"></canvas>css文件:1canvas{2border:1pxsolidlightgrey;3} javascript文件1varcanvas=newfabric.Canvas('c',{2selection:false3});4v......
  • uni-forms 和 uni-data-select 嵌套使用设定必填但初始化时不校验
    使用 uni-forms-item和 uni-data-select嵌套时,首先要注意的是:name=[]属性必须使用动态绑定,而且数组中的字符串必须和v-model的属性完全相同,如v-model="formatStationInfo.requiredSelect[index].curValue":name="['requiredSelect',index,'curValue']" :......
  • Dynamics CRM 2013 常用JS脚本
    Xrm.Page.data获取记录的主键Id的值(getId)varId=Xrm.Page.data.entity.getId();获取记录的表的逻辑名称(getEntityName)varentityName=Xrm.Page.data.entity.getEntityName();获取引用记录的查找值(getEntityReference)varerEntity=Xrm.Page.data.entity.getEnt......
  • jsPlumb导航器
    开源项目地址:https://gitee.com/easyxaf/jsplumb-navigator前言jsPlumb可用于连接DOM元素,它不依赖框架,所以与主流框架都可以无缝的集成。但比较遗憾的是社区版中没有平移、缩放等功能,如果用它来开发工作流等项目,用户体验会大打折扣。我的项目是用Blazor开发的,在比较了多款开源流......
  • js 实现深拷贝/深复制
    //深拷贝constdeepClone=(obj)=>{vartarget={};for(varkeyinobj){if(Object.prototype.hasOwnProperty.call(obj,key)){if(typeofobj[key]==='object'){target[key]=deepClone(obj[key])......
  • Nestjs系列 Nestjs基础(四)
    Nest中的middlewaremiddware基础用法已经在Nest的AOP架构章节中存在。此次记录middleware的更详细用法新建项目,然后创建一个middleware模板nestgmiddlewaretest--no-spec--flat可以看到此时的req和res都是any,可以对其进行明确的类型标注,express就从......
  • 正则re
    正则表达式它是约束字符串匹配某种形式的规则正则表达式有什么用?1.检测某个字符串是否符合规则.比如:判断手机号,身份证号是否合法2.提取网页字符串中想要的数据.比如:爬虫中,提取网站天气,信息,股票代码,星座运势等具体关键字在线测试工具http://tool.chinaz.com/regex/......
  • Java登陆第三十四天——Node.js安装、npm配置、npm命令
    Nodejs是JS的运行环境,使JS可以运行在服务端,可以夸平台,可以运行在浏览器之外,成为一款全栈编程语言。Node.js安装Nodejs官网,进入......