TERSUS笔记员工信息502-常用正则表达式
正则学习网:https://www.runoob.com/regexp/regexp-metachar.html
正则验证邮箱:^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$
正则验证手机号:^(0|86|17951)?(13[0-9]|15[0123456789]|17[678]|18[0-9]|14[57])[0-9]{8}$
国内电话号码(0511-4405222、021-87888822):\d{3}-\d{8}|\d{4}-\d{7}
身份证号(18位数字),最后一位是校验位,可能为数字或字符X:(^\d{18}$)|(\d{17}(\d|X|x)$
邮政编码:[1-9]\d{5}(?!\d) (中国邮政编码为6位数字)
车牌号:{1}[A-Z]{1}[A-Z0-9]{4}[A-Z0-9挂学警港澳]{1}$
验证真实姓名:^([\u4e00-\u9fa5]{1,20}|[a-zA-Z\.\s]{1,20})$
密码(密码至少包含:数字和英文字母,长度6-20):^(?![0-9]+)(?![a−zA−Z]+)[0-9A-Za-z]{6,20}$;
1、不能有特殊字符和数字;
2、可以输入英文,可以有空格,可以输入英文名字中的点;
3、可以输入汉字;
4、中文英文不能同时出现;
5、长度在1-20;
在特色思中使用时,需要对一些写法进行调整。
例如:
姓名:^([\u4e00-\u9fa5]{1,20}|[a-zA-Z\.\s]{1,20})$
邮箱:^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$
邮编:[1-9]\d{5}(?!\d) ===》在特色思中就要写在:[1-9]{5}[0-9]$
身份证:^[1-9][0-9]{5}(18|19|20|(3[0-9]))[0-9]{2}((0[1-9])|(1[0-2]))(([0-2][1-9])|10|20|30|31)[0-9]{3}[0-9Xx]$
手机号:^(0|86|17951)?(13[0-9]|15[0123456789]|17[678]|18[0-9]|14[57])[0-9]{8}$
电话或手机号:[0-9]{3}-[0-9]{8}$|[0-9]{4}-[0-9]{7}$|^(0|86|17951)?(13[0-9]|15[0123456789]|17[678]|18[0-9]|14[57])[0-9]{8}$
密码(密码至少包含:数字和英文字母,长度6-20):^(?![0-9]+)(?![a−zA−Z]+)[0-9A-Za-z]{6,20}$;
简版的匹配规则
1.1 分部规则 我们首先提出方案1,并分步做如下规则定义:
1.1.1 地址码规则: 地址码长6位 以数字1-9开头 后5位为0-9的数字 根据以上规则,写出地址码的正则表达式: /^[1-9]\d{5}/
1.1.2 年份码规则: 年份码长4位 以数字18,19或20,30开头 剩余两位为0-9的数字 根据以上规则,写出年份码的正则表达式: /(18|19|20|(3\d))\d{2}/。如果想扩展可以自己添加
1.1.3 月份码规则: 月份码长2位 第一位数字为0,第二位数字为1-9 或者第一位数字为1,第二位数字为0-2 根据以上规则,写出月份码的正则表达式: /((0[1-9])|(1[0-2]))/。
1.1.4 日期码规则: 日期码长2位 第一位数字为0-2,第二位数字为1-9 或者是10,20,30,31 根据以上规则,写出日期码的正则表达式 :/(([0-2][1-9])|10|20|30|31)/。
1.1.5 顺序码规则: 顺序码长3位 顺序码是数字 根据以上规则,写出顺序码的正则表达式 :/\d{3}/。
1.1.6 校验码规则: 校验码长1位 可以是数字,字母x或字母X 根据以上规则,写出校验码的正则表达式 :/[0-9Xx]/。
最后的结果:
^[1-9]\d{5}(18|19|20|(3\d))\d{2}((0[1-9])|(1[0-2]))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$
^[1-9][0-9]{5}(18|19|20|(3[0-9]))[0-9]{2}((0[1-9])|(1[0-2]))(([0-2][1-9])|10|20|30|31)[0-9]{3}[0-9Xx]$ 将\d调整为[0-9]
1)整数
正数:/^[1-9][0-9]*$/
非负数:/^[0-9]*$/
负数:/^-[1-9][0-9]*$/
非正数:/^-[0-9]*$/
所有整数:/^(-)?[0-9]*$/
2)小数
正数:/^[0-9][.][0-9]{1,}$/
负数:/^-[0-9][.][0-9]{1,}$/
3)整数和小数
非负数:/^[0-9]+([.][0-9]{1,})?$/
非正数:/^-[0-9]+([.][0-9]{1,})?$/
所有数字:/^(-)?[0-9]+([.][0-9]{1,})?$/
tip:小数点后的位数控制:{最小位数 , 最大位数} 。[0-9]也可以用 \d 代替 特殊使用:{1,} 后位不写表示可以无限位数