知道这些正则表达式,能让你少写1000行代码

2023年 11月 30日 20.3k 0

校验密码强度

  • 密码长度为8-16位
  • 必须包含至少一个大写字母、一个小写字母和一个数字
^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[a-zA-Z\d]{8,16}$

这个正则表达式的含义是:

  • ^ 表示匹配字符串的开始
  • (?=.*[a-z]) 表示至少包含一个小写字母
  • (?=.*[A-Z]) 表示至少包含一个大写字母
  • (?=.*\d) 表示至少包含一个数字
  • [a-zA-Z\d]{8,16} 表示密码由大小写字母和数字组成,且长度为8-16位
  • $ 表示匹配字符串的结束

使用这个正则表达式可以校验密码是否符合一定的强度要求。

校验中文

^[\u4e00-\u9fa5]+$

这个正则表达式可以匹配一个或多个中文字符。

由数字、英文字母、下划线组成的字符串

^\w+$

\w表示匹配任意数字、英文字母、下划线。+表示匹配前面的字符一次或多次。^表示匹配字符串的开头,$表示匹配字符串的结尾。因此,这个正则表达式可以用来校验由数字、英文字母、下划线组成的字符串。

校验邮箱地址

^[\w\.-]+@[a-zA-Z\d\.-]+\.[a-zA-Z]{2,}$

这个正则表达式的含义是:

  • ^ 表示匹配字符串的开头
  • [\w\.-]+ 匹配邮箱地址中的用户名部分,包括字母、数字、下划线、点和连字符,且至少包含一个字符
  • @ 匹配邮箱地址中的@符号
  • [a-zA-Z\d\.-]+ 匹配邮箱地址中的域名部分,包括字母、数字、点和连字符,且至少包含一个字符
  • \. 匹配邮箱地址中的域名部分和顶级域名之间的点
  • [a-zA-Z]{2,} 匹配邮箱地址中的顶级域名部分,包括至少两个字母
  • $ 表示匹配字符串的结尾

这个正则表达式可以校验大部分常见的邮箱地址格式,但并不能保证一定能匹配所有合法的邮箱地址。

校验身份证号

/^(\d{6})(19|20)?(\d{2})(0[1-9]|1[0-2])(0[1-9]|[12]\d|3[01])(\d{3})(\d|X)?$/

^表示匹配字符串的开始,$表示匹配字符串的结束。括号用于分组,\d表示匹配数字,?表示前面的字符可选,|表示或的关系,[...]表示匹配括号内的任意一个字符,{n}表示匹配前面的字符n次,{m,n}表示匹配前面的字符至少m次,至多n次。

这个正则表达式可以匹配18位和15位身份证号,其中18位身份证号的前17位为数字,最后一位可以是数字或者X,15位身份证号的前15位为数字。

校验日期

^(?:(?:31(\/|-|\.)(?:0?[13578]|1[02]))\1|(?:(?:29|30)(\/|-|\.)(?:0?[13-9]|1[0-2])\2))(?:(?:1[6-9]|[2-9]\d)?\d{2})$|^(?:29(\/|-|\.)(?:0?2)\3(?:(?:(?:1[6-9]|[2-9]\d)?(?:0[48]|[2468][048]|[13579][26])|(?:(?:16|[2468][048]|[3579][26])00))))$|^(?:0?[1-9]|1\d|2[0-8])(\/|-|\.)(?:(?:0?[1-9])|(?:1[0-2]))\4(?:(?:1[6-9]|[2-9]\d)?\d{2})$

这个正则表达式可以匹配格式为"dd/mm/yyyy"、"dd-mm-yyyy"或"dd.mm.yyyy"的日期,其中年份为1600年至9999年之间的日期。

^\d{4}-\d{2}-\d{2}$

这个正则表达式可以使用以下正则表达式来校验yyyy-mm-dd格式的日期,以4位数字开头,然后是一个连字符,然后是2位数字,再然后是一个连字符,最后是2位数字。

校验金额

^\d{1,3}(,\d{3})*(\.\d{2})?$

这个正则表达式可以匹配以下金额格式:

  • 123
  • 1,234
  • 1,234.56
  • 123.45

其中:

  • ^\d{1,3} 匹配 1 到 3 位数字开头
  • (,\d{3})* 匹配逗号和3位数字的组合,可以重复任意次
  • (\.\d{2})? 匹配小数点和2位数字的组合,可选

这个正则表达式可以满足大部分金额的校验需求。

校验手机号

^1[3-9]\d{9}$

这个正则表达式可以匹配以1开头的11位数字,其中第二位数字为3-9之间的任意数字。

检查IE版本

MSIE\s(\d+)

这个正则表达式可以匹配以"MSIE"开头,后面跟着一个或多个数字的字符串,这个数字就是IE的版本号。

校验IP地址

^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$

这个正则表达式可以匹配合法的IP地址,其中每个段的取值范围是0到255。

校验URL

^(https?|ftp):\/\/[^\s\/$.?#].[^\s]*$

这个正则表达式可以匹配以http、https或ftp开头的URL,例如:https://www.baidu.com。

校验文件路径及扩展名

文件路径的正则表达式:

^(\/[^\/\0]+)+$

解释:

  • ^ 表示匹配字符串的开头
  • (\/[^\/\0]+)+ 表示匹配以/开头,后面跟着至少一个非/和空字符的字符组合,可以重复多次
  • $ 表示匹配字符串的结尾

扩展名的正则表达式:

\.[a-zA-Z0-9]+$

解释:

  • \. 表示匹配.字符
  • [a-zA-Z0-9]+ 表示匹配至少一个字母或数字
  • $ 表示匹配字符串的结尾

将两个正则表达式结合起来,可以校验文件路径及扩展名:

^(\/[^\/\0]+)+\.[a-zA-Z0-9]+$

提取Hex颜色值

#?([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})

这个正则表达式可以匹配带有#前缀的6位或3位16进制颜色代码。

匹配HTML标签

)

这个正则表达式可以匹配类似、、等HTML标签。

在线工具:https://regex101.com/

相关文章

JavaScript2024新功能:Object.groupBy、正则表达式v标志
PHP trim 函数对多字节字符的使用和限制
新函数 json_validate() 、randomizer 类扩展…20 个PHP 8.3 新特性全面解析
使用HTMX为WordPress增效:如何在不使用复杂框架的情况下增强平台功能
为React 19做准备:WordPress 6.6用户指南
如何删除WordPress中的所有评论

发布评论