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 相关文章推荐
js arguments,jcallee caller用法总结
Nov 30 Javascript
JS 删除字符串最后一个字符的实现代码
Feb 20 Javascript
jQuery实现带遮罩层效果的blockUI弹出层示例【附demo源码下载】
Sep 14 Javascript
老生常谈javascript的类型转换
Oct 12 Javascript
jquery获取input type=text中的值的各种方式(总结)
Dec 02 Javascript
基于js实现的限制文本框只可以输入数字
Dec 05 Javascript
WebSocket实现简单客服聊天系统
May 12 Javascript
详解Webpack+Babel+React开发环境的搭建的方法步骤
Jan 09 Javascript
js判断传入时间和当前时间大小实例(超简单)
Jan 11 Javascript
Vue退出登录时清空缓存的实现
Nov 12 Javascript
Javascript实现简易天数计算器
May 18 Javascript
vue项目打包为APP,静态资源正常显示,但API请求不到数据的操作
Sep 12 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使用pack处理二进制文件的方法
2014/07/03 PHP
将PHP的session数据存储到数据库中的代码实例
2016/06/24 PHP
PHP receiveMail实现收邮件功能
2018/04/25 PHP
IE和Firefox在JavaScript应用中的兼容性探讨
2008/04/01 Javascript
jQuery学习笔记 操作jQuery对象 CSS处理
2012/09/19 Javascript
jQuery 如何先创建、再修改、后添加DOM元素
2014/05/20 Javascript
jquery 为a标签绑定click事件示例代码
2014/06/23 Javascript
node.js适合游戏后台开发吗?
2014/09/03 Javascript
node.js中的querystring.parse方法使用说明
2014/12/10 Javascript
jQuery中:file选择器用法实例
2015/01/04 Javascript
node.js操作mysql(增删改查)
2015/07/24 Javascript
javascript常用的方法整理
2015/08/20 Javascript
AngularJS中如何使用$http对MongoLab数据表进行增删改查
2016/01/23 Javascript
jquery仿QQ登录账号选择下拉框效果
2016/03/22 Javascript
javascript实现简单计算器效果【推荐】
2016/04/19 Javascript
为什么JavaScript没有块级作用域
2016/05/22 Javascript
基于 Bootstrap Datetimepicker 联动
2017/08/03 Javascript
解析vue中的$mount
2017/12/21 Javascript
JS事件绑定的常用方式实例总结
2019/03/02 Javascript
17道题让你彻底理解JS中的类型转换
2019/08/08 Javascript
vue 组件开发原理与实现方法详解
2019/11/29 Javascript
[05:56]第十六期——新进3大C之小兔基
2014/06/24 DOTA
Python简单格式化时间的方法【strftime函数】
2016/09/18 Python
解决Pycharm中import时无法识别自己写的程序方法
2018/05/18 Python
python中实现字符串翻转的方法
2018/07/11 Python
Python 读写文件的操作代码
2018/09/20 Python
python3.7 利用函数os pandas利用excel对文件名进行归类
2019/09/29 Python
Tensorflow 模型转换 .pb convert to .lite实例
2020/02/12 Python
在ipython notebook中使用argparse方式
2020/04/20 Python
python性能测试工具locust的使用
2020/12/28 Python
CSS3 优势以及网页设计师如何使用CSS3技术
2009/07/29 HTML / CSS
美国隐形眼镜零售商:LensPure
2019/03/10 全球购物
机械制造与自动化应届生求职信
2013/11/16 职场文书
护士个人自我鉴定
2014/03/24 职场文书
机械专业毕业生自我鉴定2014
2014/10/04 职场文书
新婚姻法离婚协议书范文
2014/11/30 职场文书