阿西河

所有教程

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

我的收藏

    最近访问  (文章)

      教程列表

      抓包专区
      测试专区

      JS RegExp.$1-$9

      非标准
      该特性是非标准的,请尽量不要在生产环境中使用它!

      非标准**$1, $2, $3, $4, $5, $6, $7, $8, $9** 属性是包含括号子串匹配的正则表达式的静态和只读属性。

      语法

      RegExp.$1
      RegExp.$2
      RegExp.$3
      RegExp.$4
      RegExp.$5
      RegExp.$6
      RegExp.$7
      RegExp.$8
      RegExp.$9
      
      

      描述

      $1, …, $9 属性是静态的, 他不是独立的的正则表达式属性. 所以, 我们总是像这样子使用他们RegExp.$1, …, RegExp.$9.

      属性的值是只读的而且只有在正确匹配的情况下才会改变.

      括号匹配项是无限的, 但是RegExp对象能捕获的只有九个. 你可以通过返回一个数组索引来取得所有的括号匹配项.

      这些属性可以在String.replace 方法中替换字符串. 在这种情况下, 不用在前面加上RegExp。下面的例子将详细说明. 当正则表达式中不包含括号, 脚本中的 $n’s 就是字面上的意思 (当n是正整数).

      例子

      $n 在 String.replace中的应用

      以下脚本用 replace() 方法去匹配一个first last格式的 nameString 实例 输出last first格式. 在替换文本里, 脚本用 $1 和 $2 表示正则表达式中的括号匹配项的结果.

      var re = /(\w+)\s(\w+)/;
      var str = 'John Smith';
      str.replace(re, '$2, $1'); // "Smith, John"
      RegExp.$1; // "John"
      RegExp.$2; // "Smith"
      
      

      技术指标

      非标准. 不属于当前的任何规范.

      浏览器适配

      We’re converting our compatibility data into a machine-readable JSON format. This compatibility table still uses the old format, because we haven’t yet converted the data it contains.

      • Desktop
      • Mobile
      FeatureChromeFirefox (Gecko)Internet ExplorerOperaSafari
      Basic support(Yes)(Yes)(Yes)(Yes)(Yes)
      FeatureAndroidChrome for AndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
      Basic support(Yes)(Yes)(Yes)(Yes)(Yes)(Yes)

      参见

      目录
      目录