5.4.3 RegExp构造函数属性

1:RegExp构造函数包含一些属性,这些属性适用于作用域中的所有正则表达式,并且基于所执行的最近一次正则表达式操作而变化;
2:这些属性的另一个独特之处,就是可以通过2种方式访问他们,换句话说,这些属性分别有一个长属性和短属性名(opera不支持短属性);

长属性名短属性名说明
input$_最近一次要匹配的字符串。opera未实现这个属性
lastMatch$&最近一次地匹配项,opera未实现这个属性
lastParen$+最近一次匹配的捕获组,opera未实现这个属性
leftContext&`input字符串中lastMatch之前的文本
Multiline$*布尔值,表示是否所有表达式都使用多行模式;所有浏览器都不再实现该属性
rightContext$’input字符串中lastMatch之后的文本
  var text='this has been a short summer'
  //匹配任何一个字符后跟hort,而且吧第一个字符放在了一个捕获组中;
      var pattern=/(.)hort/g
      if(pattern.test(text)){
        console.log(RegExp)
        console.log(RegExp.input)     //RegExp.$_
        console.log(RegExp.lastMatch)   //RegExp.["$&"]
        console.log(RegExp.leftContext)   //RegExp.["&`"]
        console.log(RegExp.rightContext)   //RegExp.["$'"]
        console.log(RegExp.lastParen)   //RegExp.["$+"]
        console.log(RegExp.multiline)   //RegExp.["$* "]
      }

这里写图片描述
3:还有多达9个用于存储捕获数组的构造函数属性;访问这些属性的语法是

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

分别用于存储第一、第二、、、、、、第九个匹配的捕获组;再调用exec或者test方法时,这些属性会被自动填充;

var text='this has been a short summer'
      var pattern=/(..)or(.)/g
      if(pattern.test(text)){
        console.log(RegExp.$1)   //sh
        console.log(RegExp.$2)     //t
      }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值