分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 技术分享

js正则匹配身份证号 有坑

发布时间:2023-09-06 01:44责任编辑:郭大石关键词:js正则
// 不能加g,每次匹配会以lastIndex为起始位去查找// 若加g,匹配到会用最后一位的index去改变lastIndex,没有匹配到则会把lastIndex重置为0// 不加g,lastIndex始终是0var textArr = [ ???‘430993199501019207‘, ???‘43099319950101920X‘, ???‘43099319950101920X‘, ???‘1234567890123456‘, ???‘430993199501019‘, ???‘430993‘, ???‘x430993199501019x‘,]var regex = /^(\d{15}|(\d{17}[\dXx]))$/var result = [ true, true, true, false, true, false, false]textArr.forEach( (val, idx) => { ???console.log( val, val.length, ?regex.test(val), result[idx] , regex.test(val) != result[idx] ? ‘失败‘:‘验证成功‘)})

  

在创建正则表达式对象时如果使用了“g”标识符或者设置它了的global属性值为ture时,那么新创建的正则表达式对象将使用模式对要将要匹配的字符串进行全局匹配。在全局匹配模式下可以对指定要查找的字符串执行多次匹配。每次匹配使用当前正则对象的lastIndex属性的值作为在目标字符串中开始查找的起始位置。lastIndex属性的初始值为0,找到匹配的项后lastIndex的值被重置为匹配内容的下一个字符在字符串中的位置索引,用来标识下次执行匹配时开始查找的位置,如果找不到匹配的项lastIndex的值会被设置为0。当没有设置正则对象的全局匹配标志时lastIndex属性的值始终为0,每次执行匹配仅查找字符串中第一个匹配的项。可以通下面的代码来查看在执行匹配相应的lastIndex 属性的值,代码如下:

var str = "123#abc"; var re = /abc/ig; console.log(re.test(str)); //输出ture console.log(re.lastIndex); //输出7 console.log(re.test(str)); //输出false console.log(re.lastIndex); //输出0 console.log(re.test(str)); //输出ture console.log(re.lastIndex); //输出7 console.log(re.test(str)); //输出false console.log(re.lastIndex); //输出0

  

js正则匹配身份证号 有坑

原文地址:https://www.cnblogs.com/iloveyou-sky/p/8504521.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved