Skip to content

常用正则表达式

以下是一些 JavaScript 中常用的正则表达式示例,涵盖了常见的使用场景:

1. 邮箱验证

javascript
const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
console.log(emailRegex.test("test@example.com")); // true

2. 手机号验证(中国大陆)

javascript
const mobileRegex = /^1[3-9]\d{9}$/;
console.log(mobileRegex.test("13800138000")); // true

3. 身份证号验证(18位)

javascript
const idCardRegex = /^[1-9]\d{5}(18|19|20)\d{2}(0[1-9]|1[0-2])(0[1-9]|[12]\d|3[01])\d{3}[\dXx]$/;
console.log(idCardRegex.test("11010519491231002X")); // true

4. URL 验证

javascript
const urlRegex = /^(https?:\/\/)?([\da-z.-]+)\.([a-z.]{2,6})([/\w .-]*)*\/?$/;
console.log(urlRegex.test("https://www.example.com/path")); // true

5. 密码强度(至少8位,含大小写字母和数字)

javascript
const passwordRegex = /^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])[a-zA-Z\d]{8,}$/;
console.log(passwordRegex.test("Passw0rd")); // true

6. 提取数字

javascript
const getNumbers = "Price: $29.99".match(/\d+(\.\d+)?/g);
console.log(getNumbers); // ["29.99"]

7. 中文检测

javascript
const chineseRegex = /[\u4e00-\u9fa5]/;
console.log(chineseRegex.test("你好")); // true

8. 日期格式(YYYY-MM-DD)

javascript
const dateRegex = /^\d{4}-\d{2}-\d{2}$/;
console.log(dateRegex.test("2023-10-05")); // true

9. 去除首尾空格

javascript
const trimSpaces = "  hello  ".replace(/^\s+|\s+$/g, "");
console.log(`"${trimSpaces}"`); // "hello"

10. HTML标签匹配

javascript
const htmlRegex = /<[^>]+>/g;
console.log("<div>test</div>".replace(htmlRegex, "")); // "test"

11. IPv4地址验证

javascript
const ipv4Regex = /^(?:(?: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]?)$/;
console.log(ipv4Regex.test("192.168.1.1")); // true

12. 匹配16进制颜色值

javascript
const hexColorRegex = /^#?([a-fA-F0-9]{6}|[a-fA-F0-9]{3})$/;
console.log(hexColorRegex.test("#ff0000")); // true

使用技巧:

  1. 创建方式

    javascript
    // 字面量形式(推荐)
    const regex = /pattern/flags; 
    
    // 构造函数形式(适合动态构建)
    const dynamicRegex = new RegExp("pattern", "flags");
  2. 常用修饰符

    • i: 不区分大小写
    • g: 全局匹配
    • m: 多行匹配
  3. 验证方法

    javascript
    // test() 返回布尔值
    if (/regex/.test(input)) {  }
    
    // match() 提取匹配结果
    const matches = input.match(/regex/);
  4. 特殊字符转义

    javascript
    // 匹配 .+*?^$()[]{}| 等需用反斜杠转义
    const escapedRegex = /\$5\.00/; // 匹配 "$5.00"

注意:正则表达式应根据具体需求调整,例如手机号/身份证规则可能随政策变化。复杂场景建议结合多个正则或添加额外逻辑验证。