清淨
  • Java

    • Java 基础
  • 框架

    • Flyway
    • MapStruct
    • Spring Cloud
  • 中间件

    • Elasticsearch
    • Redis
    • RabbitMQ
    • Kafka
  • 三剑客

    • HTML
    • CSS
    • JavaScript
  • 进阶

    • jQuery
    • ECMAScript6
    • TypeScript
  • Vue

    • Vue2
    • Vue3
    • VuePress
  • Linux
  • Jenkins
  • Maven
  • MySQL
  • 插件工具
  • 代码集成
  • 其它

    • 数据结构与算法
    • 计算机网络
    • 操作系统
    • 设计模式
迁移日志
订阅号
微信订阅号
微信订阅号
GitHub
  • Java

    • Java 基础
  • 框架

    • Flyway
    • MapStruct
    • Spring Cloud
  • 中间件

    • Elasticsearch
    • Redis
    • RabbitMQ
    • Kafka
  • 三剑客

    • HTML
    • CSS
    • JavaScript
  • 进阶

    • jQuery
    • ECMAScript6
    • TypeScript
  • Vue

    • Vue2
    • Vue3
    • VuePress
  • Linux
  • Jenkins
  • Maven
  • MySQL
  • 插件工具
  • 代码集成
  • 其它

    • 数据结构与算法
    • 计算机网络
    • 操作系统
    • 设计模式
迁移日志
订阅号
微信订阅号
微信订阅号
GitHub
  • JavaScript

    • 简介
    • 数据类型
    • 基本语法
    • 对象
    • 函数
    • 作用域
    • this
    • 垃圾回收
    • 数组
    • 字符串
    • 正则表达式
    • DOM API
    • BOM
    • 定时器
    • 执行上下文
    • 闭包

正则表达式

创建正则表达式

有两种方法来创建匹配模式,如下:

  • 通过 RegExp 对象创建

    var reg = new RegExp("a","i");
    
  • 使用字面量创建

    // 不用加引号
    var reg = /a/i;
    

两者的区别如下:

var reg = new RegExp("\\.");
// 等价形式如下
var reg = /\./;

test()

检索字符串中指定的值,返回 true 或 false。

var reg = new RegExp("a");
var str = "abc";
console.log(reg);
console.log(reg.test(str)); // true

匹配模式

  • 或

    var reg = /a|b|c/; // /[a|b|c]/或者/[abc]/ 或者 /(a|b|c)/
    
  • 是否含有字母

    reg = /[A-Z|a-z]/;
    reg = /[a-z]/i;
    reg = /[A-z]/;
    
  • 除掉某个字符

    reg = /[^ab]/; // 匹配除了 ab 以外字符。
    reg.test("cab"); // true
    
  • 任意数字

    reg = /[0-9]/;
    
  • 是否含有某个子串

    reg = /abc/;
    
  • { }

    • n{ X }   匹配包含 X 个 n 的序列的字符串。
    • n{ X, Y }   匹配包含 X 至 Y 个 n 的序列的字符串。
    • n{ X, }   匹配包含至少 X 个 n 的序列的字符串。
    reg = /a{3}/;
    console.log(reg.test("aaaaaa12346"));
    
    reg = /(ab){3}/;
    console.log(reg.test("abababa12346"));
    
  • \w

    任意字母、数字、下划线。

  • \W

    和 \w 相反。

  • \b

    通常用来检查是否含有某个单词。

    reg = /\bchina\b/;
    
  • 是否全是数字

    reg = /^\d{3}$/;
    console.log(reg.test("123m"));
    
  • 只含有某个数字

    reg = /^\d$/;
    console.log(reg.test("1"));
    
  • 去掉前后的空格

    // 使用 tirm()
    console.log("  1  3  ".trim());
    // 使用正则表达式
    console.log("  1  3  ".replace(/^\s*|\s*$/g,""));
    // console.log("  1  3  ".replace(/^\s+|\s+$/g,""));
    
  • 判断是否全是空格

    console.log("     ".replace(/^\s*$/,"") == "");
    // console.log("     ".replace(/^\s+$/,"") == "");
    
  • 检查手机号

    reg = /^1([358]\d|4[01456789]|6[2567]|7[012345678]|9[012356789])\d{8}$/;
    console.log(reg.test("15023456789"));
    
  • 检查邮箱

    reg = /^\w+([-\.]\w+)*@[A-z\d]+(\.[A-z\d]{2,6}){1,2}$/;
    console.log("邮箱: "+reg.test("ddd-2@qq.com.cn");
    
想要编辑此页?
上次更新: 2025/6/4 23:16
贡献者: Junfeng Dai
←字符串DOM API→
[ 纸上得来终觉浅绝知此事要躬行 ]
Copyright © 2021-present Junfeng Dai
蜀ICP备2021009537号