常用正则表达式大全(持续更新中)

发布时间 2023-03-23 10:57:42作者: 叶疏鸿
 前排提要:

以下正则表达式适用于对给定的字符串进行规则匹配,从而判断是否符合指定的需求,而非用于从给定字符串中抽取出目标字符串的情况。

1. 网址URL(不带端口号,如:https://www.baidu.com/)

^(((ht|f)tps?):\/\/)?([^!@#$%^&*?.\s-]([^!@#$%^&*?.\s]{0,63}[^!@#$%^&*?.\s])?\.)+[a-z]{2,6}\/?

2. 网址URL(带端口号,如:https://www.baidu.com:8080/)

^((ht|f)tps?:\/\/)?[\w-]+(\.[\w-]+)+:\d{1,5}\/?$

3. 图片在线地址(如:https://tenfei04.cfp.cn/creative/vcg/veer/1600water/veer-147317368.jpg)

^https?:\/\/(.+\/)+.+(\.(gif|png|jpg|jpeg|webp|svg|psd|bmp|tif))$

4. 时间(24小时,格式:HH:mm:ss)

^(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d$

5. 时间(12小时,格式:hh:mm:ss)

^(?:1[0-2]|0?[1-9]):[0-5]\d:[0-5]\d$

6. 中国大陆手机号(严格,2019年最新手机号段,如:19876809091)

^(?:(?:\+|00)86)?1(?:(?:3[\d])|(?:4[5-79])|(?:5[0-35-9])|(?:6[5-7])|(?:7[0-8])|(?:8[\d])|(?:9[189]))\d{8}$

7. 中国大陆手机号(宽松,数字1开头即可,如:19876809091)

^(?:(?:\+|00)86)?1\d{10}$

8. 日期(可判断闰年,格式:YYYY-MM-DD,如:2021-12-01)

^(([0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]{1}|[0-9]{1}[1-9][0-9]{2}|[1-9][0-9]{3})-(((0[13578]|1[02])-(0[1-9]|[12][0-9]|3[01]))|((0[469]|11)-(0[1-9]|[12][0-9]|30))|(02-(0[1-9]|[1][0-9]|2[0-8]))))|((([0-9]{2})(0[48]|[2468][048]|[13579][26])|((0[48]|[2468][048]|[3579][26])00))-02-29)$

9. email邮箱(支持中文,如:123@qq.com)

^(([^<>()[\]\\.,;:\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,}))$

10. 中国大陆身份证号(1代,15位,如:123419901220321)

^[1-9]\d{7}(?:0\d|10|11|12)(?:0[1-9]|[1-2][\d]|30|31)\d{3}$

11. 中国大陆身份证号(2代,18位,如:429004199801012921)

^[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]$

12. 香港身份证(如:A123456(1))

^[a-zA-Z]\d{6}\([\dA]\)$

13. 澳门身份证(如:1234567(1))

^[1|5|7]\d{6}\(\d\)$

14. 台湾身份证(如:A123456789)

^[a-zA-Z][0-9]{9}$

15. qq号(如:123456)

^[1-9][0-9]{4,10}$

16. 微信号(6至20位,以字母开头,可包含字母、数字、减号和下划线,如:wechat01)

^[a-zA-Z][-_a-zA-Z0-9]{5,19}$

17. 用户名校验(4到16位,可包含字母、数字和下划线,如:test01)

^[a-zA-Z0-9_]{4,16}$

18. 金额(正数,可有最多两位小数,如:8.99)

(?:^[1-9]([0-9]+)?(?:\.[0-9]{1,2})?$)|(?:^(?:0)$)|(?:^[0-9]\.[0-9](?:[0-9])?$)