JavaScript正则表达式是高效处理字符串匹配、提取和替换的工具,通过模式描述目标,配合RegExp对象或字符串方法(如test、match、replace)使用;支持字面量和构造函数两种写法,常用标志有g、i、m;邮箱校验推荐/^1+@2+.3+$/,手机号用/^1[3-9]\d{9}$/,中文提取用[\u4e00-\u9fa5]{2,4},强调精准匹配优于复杂公式。\s@ ↩\s@ ↩\s@ ↩

JavaScript 正则表达式是处理字符串匹配、提取和替换的高效工具。核心在于用简洁的模式描述“想要找什么”,再配合 RegExp 对象或字符串方法(如 test()、match()、replace())来执行操作。
基础写法与常用标志
正则表达式可写作字面量形式 /pattern/flags,也可用构造函数 new RegExp('pattern', 'flags')(动态生成时更灵活)。常用标志有:
- g:全局匹配(不加则只匹配第一个)
- i:忽略大小写
-
m:多行模式(让
^和$匹配每行起止)
邮箱地址匹配(实用但需注意边界)
简单验证可用:/^[^\s@]+@[^\s@]+\.[^\s@]+$/。它要求:开头非空格/@字符,接着一个 @,再是非空格/@字符,一个点,最后是非空格/@字符。
注意:完整邮箱规范极复杂(RFC 5322),前端只需做基础校验,后端必须二次验证。避免用过于宽松的 /.+@.+\..+/,它会误判 a@b.c.d 或 @ . 这类无效输入。
立即学习“Java免费学习笔记(深入)”;
手机号匹配(以中国大陆为例)
常见格式是 11 位数字,以 1 开头,第二位常为 3–9:/^1[3-9]\d{9}$/。
说明:
-
^和$锁定首尾,防止 “abc13812345678def” 被误认为合法 -
[3-9]排除已停用号段(如 11、12) -
\d{9}表示后面紧跟 9 个数字
若需兼容带分隔符的输入(如 138-1234-5678),先用 .replace(/[-\s]/g, '') 清理再校验。
中文、数字、字母混合提取
比如从字符串 "订单号:ORD2024001,用户:张三,金额:¥99.5" 中提取关键信息:
- 提取订单号:
str.match(/ORD\d+/)→["ORD2024001"] - 提取中文姓名:
str.match(/[\u4e00-\u9fa5]{2,4}/)(匹配 2–4 个常用汉字) - 提取金额数字:
str.match(/¥(\d+\.\d+)/),括号捕获小数部分,match()返回数组,[1]即数值
提示:[\u4e00-\u9fa5] 是常用汉字范围,不能覆盖生僻字或扩展区;如需更全,可加 \u3400-\u4dbf(扩展 A)等,但多数场景够用。
基本上就这些。正则不是越长越强,而是越准越稳——明确目标、限制边界、测试边界值,比套用“万能公式”更重要。











