正则表达式判断18位身份证,该怎么处理
3个回答
TableDI
2024-07-18 广告
2024-07-18 广告
在Excel中,字符串匹配函数主要用于查找和定位特定字符串在文本中的位置或进行替换操作。常用的字符串匹配函数包括FIND、SEARCH、SUBSTITUTE和REPLACE等。FIND和SEARCH函数用于查找字符串的位置,而SUBSTIT...
点击进入详情页
本回答由TableDI提供
展开全部
处理方法:
如果只是简单判断 r = /^(\d{18}|\d{17}x)$/,只需要判断18位数字活着17位数字+一位x。
1、介绍:
xxxxxx yyyy MM dd 375 0 十八位
xxxxxx yy MM dd 75 0 十五位
2、地区: [1-9]\d{5}
3、年的前两位: (18|19|([23]\d))
4、年的后两位: \d{2}
5、月份: ((0[1-9])|(10|11|12))
6、天数: (([0-2][1-9])|10|20|30|31)
7、三位顺序码: \d{3}
8、两位顺序码: \d{2}
9、校验码: [0-9Xx]
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
想用一个非常简短的正则表达式来验证身份证的可以歇歇了,因为需要判断的条件太多。就中间日期的判断就不可能用那种印象中超短的正则表达式来写。
本来想找个现成的,结果没有一个令人满意的,大多写出来的效果基本上也就是证明了是一个18位的数字并且最后一位可以是X。
这样敷衍的东西完全满足不了一个万劫不复的强迫症患者。于是我自己写了一个,虽然不算好,但是和现其他身份证的正则相比正确率绝对不在一个等级。
因为太长估计你看了也不一定还会用。但发布出来是我的事情。因为我正在进化的强迫症!
本身份证正则表达式仅可以验证1900年——2099年二代身份证,并且单条无法验证平年和闰年。因为不太喜欢\d所以里面全部使用了[0-9]
闰年:
regex1=/^([1][1-5]|[2][1-3]|[3][1-7]|[4][1-6]|[5][0-4]|[6][1-5])([1-6][0-9]|[7][0])([0,1][0-8]|[2-9][0-9])(([1][9]|[2][0])[0-9]{2})(((([0][1,3,5,7,8]|[1][0,2])([0][1-9]|[1-2][0-9]|[3][0-1])))|(([0][2]([0][1-9]|[1][0-9]|[2][0-9])))|((([0][4,6,9]|[1][1])([0][1-9]|[1-2][0-9]|[3][0]))))([0-9]{3}([0-9]|X|x))$/;
平年:
regex2=/^([1][1-5]|[2][1-3]|[3][1-7]|[4][1-6]|[5][0-4]|[6][1-5])([1-6][0-9]|[7][0])([0,1][0-8]|[2-9][0-9])(([1][9]|[2][0])[0-9]{2})(((([0][1,3,5,7,8]|[1][0,2])([0][1-9]|[1-2][0-9]|[3][0-1])))|(([0][2]([0][1-9]|[1][0-9]|[2][0-8])))|((([0][4,6,9]|[1][1])([0][1-9]|[1-2][0-9]|[3][0]))))([0-9]{3}([0-9]|X|x))$/;
本来想找个现成的,结果没有一个令人满意的,大多写出来的效果基本上也就是证明了是一个18位的数字并且最后一位可以是X。
这样敷衍的东西完全满足不了一个万劫不复的强迫症患者。于是我自己写了一个,虽然不算好,但是和现其他身份证的正则相比正确率绝对不在一个等级。
因为太长估计你看了也不一定还会用。但发布出来是我的事情。因为我正在进化的强迫症!
本身份证正则表达式仅可以验证1900年——2099年二代身份证,并且单条无法验证平年和闰年。因为不太喜欢\d所以里面全部使用了[0-9]
闰年:
regex1=/^([1][1-5]|[2][1-3]|[3][1-7]|[4][1-6]|[5][0-4]|[6][1-5])([1-6][0-9]|[7][0])([0,1][0-8]|[2-9][0-9])(([1][9]|[2][0])[0-9]{2})(((([0][1,3,5,7,8]|[1][0,2])([0][1-9]|[1-2][0-9]|[3][0-1])))|(([0][2]([0][1-9]|[1][0-9]|[2][0-9])))|((([0][4,6,9]|[1][1])([0][1-9]|[1-2][0-9]|[3][0]))))([0-9]{3}([0-9]|X|x))$/;
平年:
regex2=/^([1][1-5]|[2][1-3]|[3][1-7]|[4][1-6]|[5][0-4]|[6][1-5])([1-6][0-9]|[7][0])([0,1][0-8]|[2-9][0-9])(([1][9]|[2][0])[0-9]{2})(((([0][1,3,5,7,8]|[1][0,2])([0][1-9]|[1-2][0-9]|[3][0-1])))|(([0][2]([0][1-9]|[1][0-9]|[2][0-8])))|((([0][4,6,9]|[1][1])([0][1-9]|[1-2][0-9]|[3][0]))))([0-9]{3}([0-9]|X|x))$/;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询