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


Posted in Javascript onJune 16, 2016

本文实例讲述了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 相关文章推荐
Extjs ajax同步请求时post方式参数发送方式
Aug 05 Javascript
jQuery学习3:操作元素属性和特性
Feb 07 Javascript
Javascript表格翻页效果实现思路及代码
Aug 23 Javascript
JavaScript事件委托的技术原理探讨示例
Apr 17 Javascript
node.js中的fs.readFileSync方法使用说明
Dec 15 Javascript
jQuery中index()方法用法实例
Dec 27 Javascript
基于Jquery实现表单验证
Jul 20 Javascript
AngularJS中实现显示或隐藏动画效果的方式总结
Dec 31 Javascript
node.js 中国天气预报 简单实现
Jun 06 Javascript
浅谈jQuery中的$.extend方法来扩展JSON对象
Feb 12 Javascript
Vue 2.X的状态管理vuex记录详解
Mar 23 Javascript
vue实现将数据存入vuex中以及从vuex中取出数据
Nov 08 Javascript
js学习阶段总结(必看篇)
Jun 16 #Javascript
原生js封装二级城市下拉列表的实现代码
Jun 16 #Javascript
jQuery获取剪贴板内容的方法
Jun 16 #Javascript
javascript作用域、作用域链(菜鸟必看)
Jun 16 #Javascript
全面理解JavaScript中的继承(必看)
Jun 16 #Javascript
深入浅析JS的数组遍历方法(推荐)
Jun 15 #Javascript
JavaScript对象数组排序实例方法浅析
Jun 15 #Javascript
You might like
PHP连接MYSQL数据库的3种常用方法
2017/02/27 PHP
php成功操作redis cluster集群的实例教程
2019/01/13 PHP
javascript AutoScroller 函数类
2009/05/29 Javascript
JavaScript 基础知识 被自己遗忘的
2009/10/15 Javascript
基于jquery的实现简单的表格中增加或删除下一行
2010/08/01 Javascript
Javascript removeChild()删除节点及删除子节点的方法
2015/12/27 Javascript
学习掌握JavaScript中this的使用技巧
2016/08/29 Javascript
IONIC自定义subheader的最佳解决方案
2016/09/22 Javascript
Vue.js第四天学习笔记
2016/12/02 Javascript
实现点击下箭头变上箭头来回切换的两种方法【推荐】
2016/12/14 Javascript
详解Sea.js中Module.exports和exports的区别
2017/02/12 Javascript
jquery插件开发之选项卡制作详解
2017/08/30 jQuery
javascript实现Emrips反质数枚举的示例代码
2017/12/06 Javascript
JavaScript实现二叉树定义、遍历及查找的方法详解
2017/12/20 Javascript
Vue引用第三方datepicker插件无法监听datepicker输入框的值的解决
2018/01/27 Javascript
Vue 获取数组键名的方法
2018/06/21 Javascript
VeeValidate 的使用场景以及配置详解
2019/01/11 Javascript
JavaScript设计模式之命令模式实例分析
2019/01/16 Javascript
layerui代码控制tab选项卡,添加,关闭的实例
2019/09/04 Javascript
Vue3 中的数据侦测的实现
2019/10/09 Javascript
[15:39]教你分分钟做大人:龙骑士
2014/10/30 DOTA
python检测lvs real server状态
2014/01/22 Python
python通过ftplib登录到ftp服务器的方法
2015/05/08 Python
Python+OpenCV图片局部区域像素值处理详解
2019/01/23 Python
Python中函数参数匹配模型详解
2019/06/09 Python
Tensorflow实现酸奶销量预测分析
2019/07/19 Python
Python中sys模块功能与用法实例详解
2020/02/26 Python
jupyter notebook 调用环境中的Keras或者pytorch教程
2020/04/14 Python
有机童装:Toby Tiger
2018/05/23 全球购物
当x.equals(y)等于true时,x.hashCode()与y.hashCode()可以不相等,这句话对不对
2015/05/02 面试题
学期自我鉴定范文
2013/10/01 职场文书
诚信承诺书范文
2014/03/27 职场文书
日语专业毕业生自荐书
2014/06/18 职场文书
小学生迎国庆演讲稿
2014/09/05 职场文书
2015年社区统计工作总结
2015/04/21 职场文书
2021年国产动漫公司排行前十名,玄机科技上榜,第二推出过铠甲勇士
2022/03/18 杂记