https://c.runoob.com/front-end/854 web在线测试正则工具
常用参数介绍:
元字符
. 匹配除换行符以外的任意字符
\w 匹配字母或数字或下划线或汉字
\s 匹配任意的空白符
\d 匹配数字
\b 匹配单词的开始或结束
^ 匹配字符串的开始
$ 匹配字符串的结束
限定符
- 重复零次或更多次
- 重复一次或更多次
? 重复零次或一次
{n} 重复n次
{n,} 重复n次或更多次
{n,m} 重复n到m次
懒惰限定符
*? 重复任意次,但尽可能少重复
+? 重复1次或更多次,但尽可能少重复
?? 重复0次或1次,但尽可能少重复
{n,m}? 重复n到m次,但尽可能少重复
{n,}? 重复n次以上,但尽可能少重复
1、身份证号(15位、18位数字),最后一位是校验位,可能为数字或字符X:
- 长度:15位或者18位
- 如果是15位,则都是数字
- 如果是18位,最后一位可能为数字或字母X或x
(\d{15}$)|(^\d{18}$)|(\d{17}(\d|X|x)$) //此写法来源于菜鸟教程
出于严谨性,上述可能导致多次错误,比如1800年前出生,生日月份大于13,日期大于32等问题 - 增加一下几个条件来进一步限制
a) 分步限制且测试,限制第一位不能为0,2-6为可以为任意数字
\d[1-9]{1}[0-9]\d{4}
b) 限制年份,必须在18,19,20之一(18/19/20之一)月份不能大于12(月份第一位为0或者1,如果为0则第二位为1-9,如果为1则为0-2,共计2位。)
(18|19|20)?\d{3}(0[1-9]|1[0-2])
c) 日期(日期第一位为0或者1或者2或者3,如果为0、1、2则第二位为1-9,如果为3第二位为0-1)
(0[1-9]|[12]\d|3[01])
d) 结尾为任意四位,但是存在大写小写X问题
\d{4}|(\d{3}X|x)
2、整合**
1\d{1}[0-9]\d{4}(18|19|20)?\d{3}(0[1-9]|1[0-2])(0[1-9]|[12]\d|3[01])\d{4}|(\d{3}X|x)$
摘要1:https://blog.csdn.net/qq_35766860/article/details/89239091?ops_request_misc=%7B%22request%5Fid%22%3A%22158253397919724847018827%22%2C%22scm%22%3A%2220140713.130056874…%22%7D&request_id=158253397919724847018827&biz_id=0&utm_source=distribute.pc_search_result.none-task
摘要2:https://blog.csdn.net/qq_36785111/article/details/81325593?ops_request_misc=%7B%22request%5Fid%22%3A%22158253397919724847018827%22%2C%22scm%22%3A%2220140713.130056874…%22%7D&request_id=158253397919724847018827&biz_id=0&utm_source=distribute.pc_search_result.none-task
摘要3:https://www.runoob.com/docker/docker-tutorial.html
1-9 ↩︎
来源:CSDN
作者:我的耳朵冬暖夏凉
链接:https://blog.csdn.net/weixin_43461612/article/details/104482995