javascript正则表达式之分组概念与用法实例

 更新时间:2016年06月16日 09:48:11   作者:hbiao68  
这篇文章主要介绍了javascript正则表达式之分组概念与用法,结合实例形式分析了javascript正则表达式分组的功能、定义与使用方法,需要的朋友可以参考下

本文实例讲述了javascript正则表达式之分组概念与用法。分享给大家供大家参考,具体如下:

function matchDemo(){
  var s;
  //该表达式分了三个组:d(b+)(d)、(b+)、(d)这个三个组(实际上是四个组,包括本身所有的表达式)
  //从最左边数第一个括号为第一个组,第二个括号为第二组,以此类推,分别对应的值为RegExp.$1和RegExp.$2的值
  var re = new RegExp("(d(b+)(d))","ig");
  var str = "cdbBdbsbdbdz";
  //exec()返回的值是符合表达式查找出来的一个数组
  var arr = re.exec(str);
  //符合d(b+)(d)这个表达式返回的值
  s = "$1 contains: " + RegExp.$1 + ", RegExp.$1 : " + RegExp.$1.length + "\n";
  //符合(b+)这个表达式返回的值
  s += "$2 contains: " + RegExp.$2 + ", RegExp.$2 : " + RegExp.$2 + "\n";
  //符合(d)这个表达式返回的值
  s += "$3 contains: " + RegExp.$3 + ", RegExp.$3 : " + RegExp.$3;
  //得到匹配字符串最后一个字符在字符串中的位置,也就是下次匹配开始位置
  alert(RegExp.lastIndex);
  //如果存在值,则返回的是最后一个分组的结果(返回任何正则表达式查找过程中最后括的子匹配)
  alert(RegExp.lastParen);
  //得到最后匹配的字符串(返回任何正则表达式搜索过程中的最后匹配的字符)
  alert(RegExp.lastMatch);
  //leftContext + lastMatch + rightContext == context
  alert(RegExp.leftContext);
  alert(RegExp.rightContext);
  //得到的结果为第二个分组的结果
  alert(RegExp.$2);
  return(s);
}
alert(matchDemo());

function matchDemo2(){
  var s,temp;
  //该结果分为两个组(b+)、(d),当然还包括全部(d(b+)(d))为默认的组
  var re = new RegExp("d(b+)(d)","ig");
  var str = "cdbBdbsbdbdz";
  //arr的结果包括三个组(包括全部的模式)返回的结果
  //dbBd、bB、d和dbd、b、d这两个模式匹配,而第二个和第三个数组实际上就是在第一个的基础上匹配(b+)、(d)这两个模式
  //也就是说分组是在全匹配的模式下再进行匹配,起到"筛选"的功能
  while((arr = re.exec(str)) != null)
  {
      alert(arr);
      temp = "$1 contains: " + RegExp.$1 + ", RegExp.$1.length : " + RegExp.$1.length + ",RegExp.$1.lastIndex:" + RegExp.$1.lastIndex; 
      alert(temp);
      //$2属性表示的是匹配第二个分组,即(d)这个模式
      s = "$2 contains: " + RegExp.$2 + ", RegExp.$2.length : " + RegExp.$2.length;
      alert(s);
  }
}
matchDemo2();

更多关于JavaScript相关内容感兴趣的读者可查看本站专题:《JavaScript切换特效与技巧总结》、《JavaScript查找算法技巧总结》、《JavaScript动画特效与技巧汇总》、《JavaScript错误与调试技巧总结》、《JavaScript数据结构与算法技巧总结》、《JavaScript遍历算法与技巧总结》及《JavaScript数学运算用法总结

希望本文所述对大家JavaScript程序设计有所帮助。

相关文章

  • uniapp表单校验超详细讲解

    uniapp表单校验超详细讲解

    这篇文章主要给大家介绍了关于uniapp表单校验的相关资料,Uni-app内置了一些表单验证方法,可以帮助我们对表单进行有效的验证,需要的朋友可以参考下
    2023-10-10
  • 使用gulp搭建本地服务器并实现模拟ajax

    使用gulp搭建本地服务器并实现模拟ajax

    这篇文章主要给大家介绍了如何使用gulp搭建本地服务器并实现模拟ajax的相关资料,文中介绍的非常详细,相信对大家具有一定的参考学习价值,需要的朋友们下面来一起看看吧。
    2017-04-04
  • JS实现滑动插件

    JS实现滑动插件

    这篇文章主要为大家详细介绍了JS实现滑动插件,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-01-01
  • javascript实现点亮灯泡特效示例

    javascript实现点亮灯泡特效示例

    这篇文章主要介绍了javascript实现点亮灯泡特效示例,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-10-10
  • 微信小程序开发之实现选项卡(窗口顶部TabBar)页面切换

    微信小程序开发之实现选项卡(窗口顶部TabBar)页面切换

    本篇文章主要介绍了微信小程序开发之选项卡(窗口顶部TabBar)页面切换,具有一定的参考价值,有需要的可以了解一下。
    2016-11-11
  • Javascript实现禁止输入中文或英文的例子

    Javascript实现禁止输入中文或英文的例子

    这篇文章主要介绍了Javascript实现禁止输入中文或英文的方法实例,本文方法都是使用正则表达式实现,需要的朋友可以参考下
    2014-12-12
  • 特想搞点新的创意出来-立体方块

    特想搞点新的创意出来-立体方块

    特想搞点新的创意出来-立体方块...
    2007-06-06
  • 在IE中调用javascript打开Excel的代码(downmoon原作)

    在IE中调用javascript打开Excel的代码(downmoon原作)

    在IE中调用javascript打开Excel的代码(downmoon原作)...
    2007-04-04
  • 浅谈js中的闭包

    浅谈js中的闭包

    闭包是一个比较抽象的概念,尤其是对js新手来说.书上的解释实在是比较晦涩,对我来说也是一样.闭包是很多语言都具备的特性,在js中,闭包主要涉及到js的几个其他的特性:作用域链,垃圾(内存)回收机制,函数嵌套,等等.
    2015-03-03
  • 拖动时防止选中

    拖动时防止选中

    本文主要介绍了拖动时防止选中的小知识点。具有很好的参考价值,下面跟着小编一起来看下吧
    2017-02-02

最新评论