正则表达式是高效处理字符串模式的工具,适用于表单校验(手机号、邮箱、密码)、日志提取(IP、状态码)、代码批量处理(替换console.log、驼峰转下划线)、路由匹配(动态路径、防路径穿越)等场景。

正则表达式是用来描述、匹配和处理字符串模式的工具,不是万能的,但在文本提取、校验、替换等高频场景中极为高效。
表单输入校验
用户注册时验证手机号、邮箱、密码强度等,用正则比写一堆 if-else 更简洁可靠。
- 手机号(中国大陆):
^1[3-9]\d{9}$—— 匹配以1开头、第二位是3–9、共11位数字 - 邮箱:
^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$—— 基本能覆盖主流邮箱格式 - 密码(至少8位,含大小写字母+数字):
^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[a-zA-Z\d]{8,}$
日志与文本内容提取
从服务器日志、API响应或爬取的HTML中快速定位关键信息,比如IP地址、URL、时间戳、错误码。
- 提取IPv4地址:
\b(?:(?: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]?)\b - 匹配HTTP状态码(如404、500):
\b(404|500|502|503)\b - 从JSON字符串中粗略提取字段值(不推荐替代JSON解析器,但调试时快):
"name"\s*:\s*"([^"]*)"
代码与配置批量处理
在IDE(如VS Code、WebStorm)或脚本中做批量查找替换,提升重构效率。
- 把所有
console.log(...)替换为空(上线前清理):console\.log\([^)]*\);? - 将驼峰变量名
userName转为下划线user_name(支持多语言编辑器的替换功能):([a-z])([A-Z])→$1_$2 - 删除注释行(CSS/JS中):
^\s*//.*$或/\*[\s\S]*?\*/(注意贪婪匹配风险)
路由与API路径匹配
前端路由(如React Router v6的path)、后端框架(Express、Koa、Spring MVC)都依赖正则逻辑做动态路径解析。
- 匹配用户ID路径:
/user/(\d+)→ 提取123作为参数 - 兼容带可选后缀的资源路径:
/assets/(.+?)(\.[a-z]+)?$→ 匹配/assets/logo或/assets/logo.png - 防止路径穿越:
^/public/[^/\\\.]{1,100}$(限制不含点、斜杠、反斜杠,避免../攻击)










