阿西河

所有教程

公众号
🌙
阿西河前端的公众号

我的收藏

    最近访问  (文章)

      教程列表

      抓包专区
      测试专区

      JavaScript 正则表达式 属性

      如何学习正则

      可以在浏览器的控制台,通过命令查看

      let reg=/\d+/;
      console.dir(reg);//顺着原型链查找有哪些方法
      console.dir(RegExp.prototype);//正则类的原型
      console.dir(RegExp);
      

      实例属性

      • global 布尔值,检测是走设置 g 标记
      • ignoreCase 布尔值,检测是否设置 i 标记
      • nultiline 布尔值,检测是否设置了 m 标记
      • lastIndex 整数,表示开始搜索下一个匹配项的字符位置,从 0 算起。
      • source 返回正则表达式的字符串表示,按照字面量形式而非传入构造函数中的字符串模式返回。

      通过这些属性可以获知一个正则表达式的各方面信息,但却没有多大用处,因为这些信息全都包含在模式声明中

      var pattern1 = /\[bc\]at/i;
      console.log(pattern1.global); //false
      console.log(pattern1.ignoreCase); //true
      console.log(pattern1.multiline); //false
      console.log(pattern1.lastIndex); //0
      console.log(pattern1.source); //"\[bc\]at"
      
      var pattern2 = new RegExp("\\[bc\\]at", "i");
      console.log(pattern2.global); //false
      console.log(pattern2.ignoreCase); //true
      console.log(pattern2.multiline); //false
      console.log(pattern2.lastIndex); //0
      console.log(pattern2.source); //"\[bc\]at"
      

      尽管第一个模式使用的是字面量,第二个模式使用了 RegExp 构造函数,但它们的 source 属性是相同的。

      可见 source 属性保存的是规范形式的字符串,即字面量形式所用的字符串。

      构造函数属性

      属性描述描述
      $_input返回最近一次匹配的字符串
      $&lastMatch返回最近一次的匹配项
      $+lastParen返回最近一次匹配的捕获组
      $`leftContext返回被查找的字符串中从字符串开始位置到最后匹配之前的位置之间的字符
      $'rightContext返回被搜索的字符串中从最后一个匹配位置开始到字符串结尾之间的字符
      $*multiline检测表达式是否采用多行匹配 m

      扩展思考

      看看其他的一些属性,了解都是做什么的。

      目录
      目录