正则匹配

本文详细介绍了正则表达式的用途、创建方法、常用方法、元字符、匹配模式以及高级特性,包括字面量和RegExp构造函数的创建方式,test与exec的用法,元字符的分类和功能,以及全局匹配、忽略大小写等模式。此外,还讨论了命名分组和零宽断言等进阶概念。
摘要由CSDN通过智能技术生成

正则匹配

我们为什么要学习正则匹配

//需求:我们需要提取字符串里面的连续数字,然后返回一个数组
//如果使用自定义函数的方式
let getNumber = (str) => {
   
      let temp = "";
      let arr = [];
      // 我们首先来循环这个字符串拿到所有的数字字符
      for (let i = 0; i < str.length; i++) {
   
        // 如果不是一个数字就返回
        if (!isNaN(str[i])) {
   
          //如果是一个数字那么就再组装一下
          temp += str[i];
        } else {
   
          //如果下一个不是一个数字了那么就把temp放在数组里面
          //过滤为空的项
          if (temp !== "") arr.push(temp);
          temp = "";
        }
      }
      //如果最后一项是数字,添加到输出的数组里面
      if (temp !== "") arr.push(temp);
      return arr;
    };
    let result = getNumber(str);
    console.log(result);

使用正则匹配

//但是我们通过正则表达式就可以很简单的做到这件事
    let reg = /\d+/g; //定义匹配规则
    let arr = str.match(reg);
    console.log(arr);
    //是一样的效果
    console.log(isNaN(2));

正则的两种创建方法

字面量创建

注意事项:在字面量创建的匹配规则/ /里面不能解析变量任何在里面的字符,都会被解析成匹配规则

//1. 字面量创建
    let str = "Asdasdada223asdada";
    let reg = /\d+/g;
    //我们就可以在字符串下面调用match方法进行匹配
    let arr = str.match(reg);
    //但是这种方法不支持变量的形式
    /* let abc =123
    let reg=/\abc/g //这只能解析成单个字符,无法解析成123 */

通过RegExp创建

通过 let reg2 = new RegExp("\d+", “g”);来创建一个匹配规则
注意的事,第一个参数如果匹配\d \w这些东西,那么需要加上转义字符,然后两个参数第一个是匹配规则,第二个是匹配范围,默认单个匹配,因为第一个参数是参数形式所以可以定义变量

//2.构造函数创建
    let str2 = "Asdasdada223asdada";
    // let reg2=new RegExp("\d+","g");
    // 但是上面这个是不行的这个只会匹配到全局的所有字母d
    // 我们需要在匹配的基础上再进行转义一下
    let reg2 = new RegExp("\\d+", "g");
    //这里是可以用变量的
    // 我们定义一个abc
    let abc = "12312";
    let reg3 = new RegExp(abc, "g")
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值