常见的正则表达式

常见的正则表达式
YuXiang在前端开发中,正则表达式(Regular Expression)是处理字符串的强大工具,常用于表单验证、数据提取等场景。以下是 前端常用的正则表达式,涵盖了常见的验证需求,长期更新中
1. 邮箱验证
1 | /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/ |
2. 手机号验证(中国大陆)
1 | /^1[3-9]\d{9}$/ |
3. 身份证号验证(中国大陆)
1 | /^\d{17}[\dXx]$/ |
4. URL 验证
1 | /^(https?:\/\/)?([\w-]+\.)+[\w-]+(\/[\w-./?%&=]*)?$/ |
5. IP 地址验证
1 | /^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/ |
6. 日期格式验证(YYYY-MM-DD)
1 | /^\d{4}-\d{2}-\d{2}$/ |
7. 时间格式验证(HH:MM:SS)
1 | /^([01]\d|2[0-3]):([0-5]\d):([0-5]\d)$/ |
8. 用户名验证(字母、数字、下划线,4-16 位)
1 | /^[a-zA-Z0-9_]{4,16}$/ |
9. 密码强度验证(至少包含大小写字母和数字,8-20 位)
1 | /^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])[a-zA-Z0-9]{8,20}$/ |
10. 十六进制颜色值验证
1 | /^#([a-fA-F0-9]{6}|[a-fA-F0-9]{3})$/ |
11. 中文姓名验证
1 | /^[\u4e00-\u9fa5]{2,4}$/ |
12. 邮政编码验证(中国大陆)
1 | /^[1-9]\d{5}$/ |
13. 车牌号验证(中国大陆)
1 | /^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼][A-HJ-NP-Z][A-HJ-NP-Z0-9]{4,5}[A-HJ-NP-Z0-9挂学警港澳]$/ |
14. 整数验证
1 | /^-?\d+$/ |
15. 正整数验证
1 | /^[1-9]\d*$/ |
16. 负整数验证
1 | /^-[1-9]\d*$/ |
17. 浮点数验证
1 | /^-?\d+\.\d+$/ |
18. 正浮点数验证
1 | /^[1-9]\d*\.\d+|0\.\d+[1-9]\d*$/ |
19. 负浮点数验证
1 | /^-[1-9]\d*\.\d+|0\.\d+[1-9]\d*$/ |
20. 数字和字母组合验证
1 | /^[a-zA-Z0-9]+$/ |
21. 纯字母验证
1 | /^[a-zA-Z]+$/ |
22. 纯数字验证
1 | /^\d+$/ |
23. 纯小写字母验证
1 | /^[a-z]+$/ |
24. 纯大写字母验证
1 | /^[A-Z]+$/ |
25. 文件扩展名验证(如 .jpg, .png)
1 | /\.(jpg|jpeg|png|gif|bmp)$/i |
26. HTML 标签验证
1 | /<("[^"]*"|'[^']*'|[^'">])*>/ |
27. 微信号验证(6-20 位,字母、数字、下划线)
1 | /^[a-zA-Z][a-zA-Z0-9_-]{5,19}$/ |
28. QQ 号验证(5-11 位数字)
1 | /^[1-9]\d{4,10}$/ |
29. 银行卡号验证(16-19 位数字)
1 | /^\d{16,19}$/ |
30. 金额验证(最多两位小数)
1 | /^\d+(\.\d{1,2})?$/ |
38. MAC 地址验证
1 | /^([0-9A-Fa-f]{2}:){5}[0-9A-Fa-f]{2}$/ |
39. Base64 编码验证
1 | /^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/ |
40. MD5 值验证(32 位)
1 | /^[a-fA-F0-9]{32}$/ |
42. 文件路径验证(Windows)
1 | /^[a-zA-Z]:\\(?:[^\\/:*?"<>|\r\n]+\\)*[^\\/:*?"<>|\r\n]*$/ |
43. 文件路径验证(Linux)
1 | /^\/(?:[^\/:*?"<>|\r\n]+\/)*[^\/:*?"<>|\r\n]*$/ |
44. 特殊字符过滤
1 | /[`~!@#$%^&*()_+<>?:"{},.\/;'[\]]/g |
47. 匹配 URL 中的域名
1 | /https?:\/\/([^\/]+)/ |
48. 匹配图片 URL
1 | /\.(jpg|jpeg|png|gif|bmp|webp)$/i |
50. 匹配 IPv6 地址
1 | /^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/ |