Appearance
RegExp构造函数属性
本节目标:理解“RegExp构造函数属性”的核心思路,并能把它用于实际开发或面试表达。
说明:原 OneNote 中有图片引用,但图片未包含在导出目录中;本页保留了可用的文字与代码内容。 RegExp构造函数包含一些属性(这些属性在其他语言中被看成是静态属性)。这些属性适用于作用域中的所有正则表达式,并且基于所执行的最近一次正则表达式操作而变化。
关于这些属性的另一个独特之处,就是可以通过两种方式访问它们。这些属性分别有一个长属性名和一个短属性名(Opera是例外,它不支持乱短属性名)。如下表:
使用这些属性可以从exec()或test()执行的操作中提取出更具体的信息。如下例:
上面的代码创建了一个模式,匹配任何一个字符后跟hort,而且把第一个字符放在了一个捕获组中。RegExp构造函数的各个属性返回了下列值:
input属性返回了原始字符串;leftContext属性返回了单词short之前的字符串,而rightContext属性则返回了short之后的字符串;
lastMatch属性返回最近一次与整个正则表达式匹配的字符串,即short;lastParen属性返回最近一次匹配的捕获组,即例子中的s。如前所述,例子中使用的长属性名都可以用相应的短属性名来代替。只不过,由于这些短属性名大都不是有效的标识符,因此必须通过方括号语法来访问它们,如下:
除了上面介绍的几个属性之外,还有多达9个用于存储捕获组的构造函数属性。访问这些属性的语法是RegExp.$1、RegExp.$2…RegExp.$9,分别用于存储第一、第二到第九个匹配的捕获组。在调用exec()或test()方法时,这些属性会被自动填充。
