JavaScript常用正则表达式大全

正则表达式是处理字符串验证、查找、替换 的神器,我整理了前端开发中最常用、最实用 的正则,附带校验代码,直接复制到项目里就能用。

一、基础校验类(表单必备)

1. 手机号校验(国内 11 位手机号)

javascript 复制代码
const phoneReg = /^1[3-9]\d{9}$/;
// 使用示例
console.log(phoneReg.test('13800138000')); // true
  • 规则:以 1 开头,第二位 3-9,后面 9 位数字。

2. 邮箱校验(通用标准)

javascript 复制代码
const emailReg = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+.[a-zA-Z]{2,}$/;
console.log(emailReg.test('test@163.com')); // true

3. 身份证号(18 位,支持校验最后一位 X)

javascript 复制代码
const idCardReg = /(^\d{18}$)|(^\d{17}(\d|X|x)$)/;
console.log(idCardReg.test('11010119900307456X')); // true

4. 密码强度校验

  • 简单密码:6-16 位字母 / 数字 / 下划线

    ini 复制代码
    const pwdSimpleReg = /^\w{6,16}$/;
  • 强密码:必须包含大小写字母 + 数字 + 特殊字符,8-20 位

    scss 复制代码
    const pwdStrongReg = /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*?&])[A-Za-z\d@$!%*?&]{8,20}$/;

5. 验证码(6 位纯数字)

ini 复制代码
const codeReg = /^\d{6}$/;

二、数字格式类

1. 纯数字(正整数 / 负整数 / 0)

ini 复制代码
const numberReg = /^-?\d+$/;

2. 正整数

ini 复制代码
const positiveIntReg = /^[1-9]\d*$/;

3. 浮点数(支持正负小数)

ini 复制代码
const floatReg = /^-?\d+(.\d+)?$/;

4. 金额(最多 2 位小数)

ini 复制代码
const moneyReg = /^\d+(.\d{1,2})?$/;

三、文本格式类

1. 中文校验

ini 复制代码
const chineseReg = /^[\u4e00-\u9fa5]+$/;

2. 英文 / 字母校验

ini 复制代码
const letterReg = /^[a-zA-Z]+$/;

3. 用户名(4-16 位,字母 / 数字 / 中文)

ini 复制代码
const usernameReg = /^[a-zA-Z0-9\u4e00-\u9fa5]{4,16}$/;

4. URL 网址校验

javascript 复制代码
const urlReg = /^(https?://)?([\da-z.-]+).([a-z.]{2,6})([/\w.-]*)*/?$/;

5. 邮政编码(6 位数字)

ini 复制代码
const zipReg = /^\d{6}$/;

四、常用处理类(替换 / 提取)

1. 去除所有空格

ini 复制代码
let str = '  123 456  ';
str = str.replace(/\s+/g, ''); // 结果:'123456'

2. 手机号中间 4 位打码

ini 复制代码
let phone = '13800138000';
phone = phone.replace(/(\d{3})\d{4}(\d{4})/, '$1****$2'); // 138****8000

3. 数字千分位格式化(123456 → 123,456)

ini 复制代码
let num = '12345678';
num = num.replace(/\B(?=(\d{3})+(?!\d))/g, ','); // 12,345,678

4. 提取字符串中的所有数字

ini 复制代码
let str = '价格199元,库存50件';
let nums = str.match(/\d+/g); // [199, 50]

五、JS 正则核心方法(必记)

  1. 正则表达式基础语法:
  • ^表示字符串的开始,$表示字符串的结束
  • \d匹配一个数字,等价于0-9
  • \w匹配一个字母或数字字符,等价于A-Za-z0-9
  • +匹配前面的子表达式一次或多次。例如,\d+匹配一个或多个数字
  1. 正则表达式修饰符:
  • i:执行不区分大小写的匹配
  • g:执行全局匹配(查找所有而非第一个匹配项)
  • m:执行多行匹配
  1. JavaScript中使用正则表达式的方法:
  • test()方法:正则.test(字符串) → 返回 true/false
  • exec()方法:在字符串中执行一个搜索匹配,返回一个结果数组或null
  • 字符串方法: match():字符串.match(正则) → 返回匹配结果数组 replace():字符串.replace(正则, 新内容) split():使用正则表达式分割字符串

总结

  1. 表单校验优先用:手机号、邮箱、身份证、密码、验证码正则
  2. 数字处理用:纯数字、金额、千分位正则
  3. 文本处理用:去空格、手机号打码、提取数字正则
  4. 所有正则直接复制,搭配 test() 方法即可完成校验
相关推荐
子兮曰4 天前
jev-ultrafast 深度解析:7 秒订机票的浏览器 Agent 是如何炼成的
前端·后端·agent
子兮曰4 天前
Jev 爆发一周:7 秒 Agent 背后的 System One 生态与三场争议
前端·后端·ai编程
前端小万4 天前
写公众号赚了 3000 块后,我做了一款叫 "一键成稿" 的软件
前端·微信小程序
爱勇宝4 天前
ZCode 开源 24 小时:一份没有历史的账本,回答不了"有没有偷代码"
前端·后端·chatglm (智谱)
三十而立洋4 天前
Cookie 详解:从产生到安全,一次讲透
前端·javascript
卡布鲁4 天前
把一个 Vite + Vue3 应用塞进 qiankun (React + Umi3) 主站:十个坑的复盘
前端·javascript·react.js
李少兄4 天前
JavaScript 隐式全局变量解析
javascript
汉堡大王95274 天前
Jev:不是聊天机器人, 而是一个智能 if 语句
前端·人工智能·后端
梦想很大很大4 天前
从运行事实到回归证据:Workrun 的 Telemetry 与 Evaluation 实践
前端·人工智能·后端
计算机魔术师4 天前
Meta Muse agent 接入 Shopify 的 Shop Pay 实现代理式购物
前端