15个常用的正则表达式(干货)

373 阅读2分钟

「这是我参与2022首次更文挑战的第34天,活动详情查看:2022首次更文挑战」。

提到正则表达式,真是猛男落泪。从来没有记住过一个正则表达式,每次用到都是翻笔记或者现查。给大家分享一下我总结的15个最常用的正则表达式。

如果觉得有用,别忘了点赞关注收藏三连套餐。

1.匹配邮箱

/ ^ [ A-Za-z0-9!# $ %&'"“” + /= ? ^ _`{} | ~, ( ) :;<> [ ] - . ] * @ [ A-Za -z0-9- ] * . [ A-Za-z ] + ( ?: . [ A-Za-z ] + ) ? ( ?: . [ A-Za-z ] + ) ? $ /

2.手机号

国内手机号:

/^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\d{8}$/

国际电话号:

/^(?:(?:\(?(?:00|\+)([1-4]\d\d|[1-9]\d?)\)?)?[\-\.\ \\\/]?)?((?:\(?\d{1,}\)?[\-\.\ \\\/]?){0,})(?:[\-\.\ \\\/]?(?:#|ext\.?|extension|x)[\-\.\ \\\/]?(\d+))?$/

3.密码

包含至少1个小写字母、1个大写字母、1个数字、1个特殊字符,至少8个字符长

/(?=(.*[0-9]))(?=.*[!@#$%^&*()\[]{}-_+=~`|:;"' <>,./?])(?=.*[az])(?=(.*[AZ]))(?=(.*)).{8,}/

应该有 1 个小写字母、1 个大写字母、1 个数字,并且长度至少为 8 个字符

/(?=(.*[0-9]))((?=.*[A-Za-z0-9])(?=.*[AZ])(?=.*[az]))^ .{8,}$/

4.用户名

4到18位,包含字母、数字、下划线、减号

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

5.日期

匹配yyyy/mm/dd:

/^\d{4}/(0[1-9]|1[0-2])/(0[1-9]|[12][0-9]|3[01])$/

匹配mm/dd/yyyy:

/^(0[1-9]|1[0-2])/(0[1-9]|[12][0-9]|3[01])/\d{4}$/

匹配dd/mm/yyyy:

/^(0[1-9]|[12][0-9]|3[01])/(0[1-9]|1[0-2])/\d{4}$/

6.时间

匹配HH:MM 12小时制:

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

匹配HH:MM 12小时包含AM PM

/((1[0-2]|0?[1-9]):([0-5][0-9]) ?([AaPp][Mm]))/

匹配HH:MM 24小时制:

/^(0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$/

匹配HH:MM:SS 24小时制

/(?:[01]\d|2[0123]):(?:[012345]\d):(?:[012345]\d)/

7.网址(Url)

包含https协议

http://https/?:\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[az]{2,6}\b(%20[-a-zA-Z0-9@:%_\+.~#()?&//=]*)/

包含https或其他协议

/(https?:\/\/)?(www\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[az]{2,6} \b([-a-zA-Z0-9@:%_\+.~#?&//=]*)/

8.IP地址

^(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5])$

9.HTML标签

匹配尖括号内的内容:

/<.+>/

匹配p标签,img标签(可自由替换):

/<\/?(?:p|img)(?: \/)?>/

包含某个属性如width="100%":

/<\/?(?:p|img)(?: [A-Za-z0-9]+=["'`].+["'`])*(?: \/)?>/

具有属性的元素:

/<\/?[\w\s]*>|<.+[\W]>/

10.文件路径

带有文件名和扩展名的文件路径

/((\/|\\|\/\/|https?:\\\\|https?:\/\/)[a-z0-9 _@\-^!#$%&+={} .\/\\\[\]]+)+\.[az]+$/

11.匹配常见符号

空格

/ \s /

纯空格:使用空格的 ASCII 表示\x20

/ \x20 /

换行符\n,回车\r,制表符\t

/ \n \r \t /

12.Json 字符串

验证Json是否符合格式要求(太好用了,来源

/[^,:{}\[\]0-9.\-+Eaeflnr-u \n\r\t]/

13.车牌号

/^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}[A-Z0-9]{4}[A-Z0-9挂学警港澳]{1}$/

14.身份证号

18位身份证号

/^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/

15.匹配字符串中的重复项

/(\b\w+\b)(?=.*\b\1\b)/