正则表达式(Regular Expression)是 JavaScript 中非常强大的工具,用于字符串的模式匹配、查找、替换和验证。在日常开发中,我们经常需要使用正则来验证用户输入、提取特定格式数据等。
✅ 一句话总结
掌握常用的正则表达式可以大幅提升开发效率,适用于表单验证、数据提取、格式校验等多种场景。
✅ 一、常见正则表达式汇总(附说明)
🔹 1. 匹配 16 进制颜色值
const regex = /#([0-9a-fA-F]{6}|[0-9a-fA-F]{3})/g;
- ✅ 匹配格式:
#FF5733或#ABC - 📌 说明:
#表示颜色标识符;6位或3位的十六进制字符(0-9,a-f,A-F);
🔹 2. 匹配日期格式 yyyy-mm-dd
const regex = /^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])$/;
- ✅ 匹配格式:
2025-07-21 - 📌 说明:
- 年份:4位数字;
- 月份:01-12;
- 日期:01-31;
- ⚠️ 不检查实际月份天数(如 2 月 30 日不会识别为错误);
🔹 3. 匹配 QQ 号
const regex = /^[1-9][0-9]{4,10}$/g;
- ✅ 匹配格式:
123456789 - 📌 说明:
- 第一位不能是 0;
- 总长度在 5 到 11 位之间;
🔹 4. 匹配中国大陆手机号码
const regex = /^1[34578]\d{9}$/g;
- ✅ 匹配格式:
13812345678 - 📌 说明:
- 以
1开头; - 第二位为
3、4、5、7、8; - 总长度为 11 位;
- 以
🔹 5. 匹配用户名(英文开头,含字母、数字、下划线、$)
const regex = /^[a-zA-Z\$][a-zA-Z0-9_\$]{4,16}$/;
- ✅ 匹配格式:
user_name$123 - 📌 说明:
- 必须以字母或
$开头; - 总长度为 5 到 17 个字符;
- 支持字母、数字、下划线和
$;
- 必须以字母或
✅ 二、更多实用正则表达式
🔹 6. 邮箱地址验证
const regex = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/;
- ✅ 匹配格式:
example@domain.com - 📌 说明:
- 支持常见的邮箱格式;
- 不包括所有边缘格式(如带引号的邮箱);
🔹 7. 密码强度验证(至少6位,含大小写和数字)
const regex = /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d).{6,}$/;
- ✅ 匹配格式:
Password123 - 📌 说明:
- 至少包含一个小写字母;
- 至少包含一个大写字母;
- 至少包含一个数字;
- 总长度不少于 6 位;
🔹 8. 匹配 URL 地址
const regex = /^(https?:\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?$/;
- ✅ 匹配格式:
https://example.com/path - 📌 说明:
- 支持 http 或 https;
- 支持域名和路径部分;
- 不包括所有 URL 边界情况;
🔹 9. 匹配身份证号码(15 或 18 位)
const regex = /^\d{15}$|^\d{18}$|^\d{17}(\d|X|x)$/;
- ✅ 匹配格式:
110101199003072316或110101900307231 - 📌 说明:
- 支持 15 位和 18 位;
- 最后一位可以是数字或
X;
🔹 10. 匹配中文字符
const regex = /[\u4e00-\u9fa5]/g;
- ✅ 匹配格式:
你好 - 📌 说明:
- 匹配中文 Unicode 编码范围;
🔹 11. 匹配 IP 地址(IPv4)
const regex = /^((25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)\.){3}(25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)$/;
- ✅ 匹配格式:
192.168.1.1 - 📌 说明:
- 每段为 0~255;
- 四段用
.分隔;
✅ 三、正则表达式速查表
| 正则符号 | 含义 | |
|---|---|---|
\d | 数字 [0-9] | |
\D | 非数字 | |
\w | 单词字符 [a-zA-Z0-9_] | |
\W | 非单词字符 | |
\s | 空白符(空格、换行、制表符等) | |
\S | 非空白符 | |
^ | 开始位置 | |
$ | 结束位置 | |
[] | 匹配括号中的任意一个字符 | |
() | 分组 | |
| ` | ` | 或 |
* | 0 次或多次 | |
+ | 1 次或多次 | |
? | 0 次或 1 次 | |
{n} | 精确匹配 n 次 | |
{n,} | 至少 n 次 | |
{n,m} | n 到 m 次 | |
. | 任意单个字符(换行除外) | |
\ | 转义字符 |
✅ 四、一句话总结
正则表达式是 JavaScript 开发中不可或缺的工具,掌握常见表达式可以快速完成数据校验、提取、替换等任务。合理使用正则,可以极大提升代码效率和可维护性。
💡 进阶建议
- 使用 regex101.com 在线测试正则表达式;
- 使用
new RegExp()动态构建正则; - 在表单验证中,结合
test()方法进行判断; - 对复杂格式验证,可结合多个正则分步校验;
- 避免写出过于复杂的正则,影响可读性;