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"

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