5.4.3 RegExp构造函数属性

来源:互联网 发布:windows c usleep 编辑:程序博客网 时间:2024/06/18 12:32

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      }
原创粉丝点击