正则的捕获组

 var text = "this has been a short summer";
 var pattern = /(..)or(.)/g;
  if (pattern.test(text)){
      alert(RegExp.$1);       //sh
      alert(RegExp.$2);       //t
  }

如上代码意思为找到'or'字符串,$1为匹配处的前两位字符,$2为匹配处的后1位字符

var text = "this has been a short summer";
var pattern = /(.*)as(.*)or(.*)/g;
if (pattern.test(text)){
    alert(RegExp.$1);       //this h
    alert(RegExp.$2);       // been a sh
    alert(RegExp.$3);      //t summer
}
var text = "this has been a short summer";
var pattern = /(.)hort/g;
 if (pattern.test(text)){
    alert(RegExp.input); // this has been a short summer
    alert(RegExp.leftContext);// this has been a
    alert(RegExp.rightContext);//  summer
    alert(RegExp.lastMatch);// short
    alert(RegExp.lastParen);// s
    alert(RegExp.multiline);// false
}
  • input属性返回原始字符串
  • leftContext属性返回了单词short之前的字符串, 而rightContext返回了单词short之后的字符串
  • lastMatch属性返回最近一次与整个正则表达式匹配的字符串,即short
  • lastParen属性返回最近一次匹配的捕获组,即s
    等同于
if (pattern.test(text)){
    alert(RegExp.$_);// this has been a short summer
    alert(RegExp["$`"]);// this has been a
    alert(RegExp["$'"]);//  summer
    alert(RegExp["$&"]);// short
    alert(RegExp["$+"]);// s
    alert(RegExp["$*"]);// false
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 第一章: JS简介 从当初简单的语言,变成了现在能够处理复杂计算和交互,拥有闭包、匿名函数, 甚至元编程等...
    LaBaby_阅读 5,627评论 0 6
  • 引用类型的值时引用类型的一个实例。在ECMAScript中,引用类型是一种数据结构,用于将数据和功能组织在一起。有...
    cooore阅读 2,481评论 0 1
  • ECMAScript 通过RegExp 类型来支持正则表达式。使用下面类似Perl的语法,就可以创建一个正则表达式...
    shanruopeng阅读 1,598评论 0 1
  • 第5章 引用类型(返回首页) 本章内容 使用对象 创建并操作数组 理解基本的JavaScript类型 使用基本类型...
    大学一百阅读 8,786评论 0 4
  • 今日周末,原是修改文字的,但是却因为一句话让我忍不住在这里敲打键盘,写下星星点点的心语。 一直很喜欢梁实秋的那句:...
    潇湘兰儿阅读 1,405评论 0 1

友情链接更多精彩内容