
本文共 1925 字,大约阅读时间需要 6 分钟。
正则表达式实用技巧分享
很多开发人员在处理数据校验时,常常会花费大量时间在网上搜索适合的正则表达式,结果往往并不尽如人意。基于这些经历,我对日常开发中常用的正则表达式进行了整理,希望能为大家提供一个实用的参考。
一、数字校验规则
1. 简单的数字校验
^[\d]*$
- 匹配任意数字,包括零和多个零
2. 确定位数字
^\d{n}$
- 确保字符串恰好有
n
位数字
3. 至少 n
位数字
^\d{n,}$
- 确保字符串至少有
n
位数字
4. 特定位数范围的数字
^\d{m,n}$
- 匹配
m
到n
位的数字
5. 不允许零开头的数字
^(0|[1-9][\d]*)$
- 确保数字开头为零或非零数字
6. 最多两位小数的数字
^([1-9][\d]*)+([.][\d]{1,2})?$
7. 带有 1-2 位小数的正数或负数
^(\-)?[\d]+([.][\d]{1,2})?$
- 支持正负号和小数部分
8. 包含小数点的数字
^(\-|[+]?)[\d]+([.][\d]+)?$
- 允许正负号和一位或多位小数
9. 允许两位小数的正实数
^[\d]+([.][\d]{2})?$
- 小数点后必须有两位数字
10. 1-3 位小数的正实数
^[\d]+([.][\d]{1,3})?$
- 小数点后允许 1 到 3 位数字
11. 非零的正整数
^([\d]+)$
- 匹配任意正整数
12. 非零的负整数
^-\d+$
- 匹配任意负整数
13. 非负整数
^\d+$
- 包含零的非负整数
14. 非正整数
^-?[\d]+$
- 允许负号的非正整数
15. 非负浮点数
^[\d]+([.][\d]+)?$
- 允许带一位或多位小数
16. 强化浮点数校验
^([1-9][\d]*\.?[0-9]*)$
- 确保小数部分至少有一个数字
17. 负浮点数
^-[\d]+([.][\d]+)?$
- 允许负号的浮点数
18. 特定格式的浮点数
^(([\d]+\.[0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$
- 适用于精确的小数表示
二、字符校验规则
1. 汉字检查
[\x{4e00}-\x{9fa5}]+
- 匹配一个或多个中文汉字
2. 英文和数字混合
^[A-Za-z0-9]+$
- 匹配字母和数字的组合
3. 长度限制的任意字符
^.{3,20}$
- 确认字符串长度在 3 到 20 个字符之间
4. 纯英文字母
^[A-Za-z]+$
- 匹配任意大小写英文字母
5. 大写英文字母
^[A-Z]+$
6. 小写英文字母
^[a-z]+$
7. 字母和数字的组合
^[A-Za-z0-9]+$
- 允许字母和数字混用
8. 适用于 GitHub 密码的字符组合
^\w+$
- 匹配字母、数字和下划线
9. 可能包含特殊字符的字符
[^%&'’"=?\s]+
- 可以包含一些常见的特殊字符
10. 不包括某些符号的字符
[^~,]+
- 禁止包含 ~ 符号
特殊需求规则
1. 电子邮件格式
^\w+([-+.]\w+)*@\w+(\.[-\w+])+$
- 包括子域名和防止垃圾邮件
2. 域名校验
^([a-zA-Z0-9\-]{0,62})(\.([a-zA-Z0-9\-]{0,62}))?$
- 适用于域名验证
3. URL格式
^([\w-]+://)?[\w-]+(/[\w-./?%&=#]*)?$
- 确保 URL 开头有协议,并包含路径
4. 手机号码
^(13[0-9]|14[5|7]|15[0|1|2|3|5|6|7|8|9]|18[0|1|2|3|5|6|7|8|9])\d{8}$
- 验证常见的手机号格式
5. 电话号码
^\(\d{3,4}-\)?.\d{7,8}$
- 可能包含区域代码和拨号方式
6. 看起来真实的身份证号码
^(\d{15}|\d{18})$
- 匹配 15 位或 18 位数字
7. 短身份证尾字母
^([0-9]){8,18}(x|X)?$
- 扩展到 8-18 位数字,允许最后一位是字母
8. 密码校验
^[A-Za-z]\w{5,17}$
- 密码要求字母开头,长度 6-18 位
9. 强密码校验
^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])\w{8,10}$
- 必须包含数字、小写、大写字母,且长度固定
10. 日期格式验证
^\d{4}-\d{1,2}-\d{1,2}$
- 确保日期格式为 YYYY-MM-DD
这些正则表达式经过实践检验,能够在实际开发中发挥重要作用。如果需要进一步优化或定制,建议结合具体应用场景进行调整。
发表评论
最新留言
关于作者
