【js篇】常用的 JavaScript 正则表达式汇总

407 阅读2分钟

正则表达式(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)$/;
  • ✅ 匹配格式:110101199003072316110101900307231
  • 📌 说明:
    • 支持 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() 方法进行判断;
  • 对复杂格式验证,可结合多个正则分步校验;
  • 避免写出过于复杂的正则,影响可读性;