浅谈JavaScript正则表达式分组匹配


Posted in Javascript onApril 10, 2015

语法

元字符:(pattern)

作用:用于反复匹配的分组

属性$1~$9

如果它(们)存在,用于得到对应分组中匹配到的子串

\1或$1

用于匹配第一个分组中的内容

\2或$2

用于匹配第一个分组中的内容

...

\9或$9

用于匹配第一个分组中的内容

用法示例

var reg = /(A+)((B|C|D)+)(E+)/gi;//该正则表达式有4个分组
//对应关系
//RegExp.$1 <-> (A+)
//RegExp.$2 <-> ((B|C|D)+)
//RegExp.$3 <-> (B|C|D)
//RegExp.$4 <-> (E+)

以上的代码也同时给出了$1~$9的用法

$1~$9是正则表达式预定义的静态属性,通过RegExp.$1引用

分组嵌套关系说明

上述代码也可以说明分组的嵌套关系

//测试环境  Chrome浏览器
var str = "ABCDE";
var reg = /(A+)((B|C|D)+)(E+)/gi;
str.match(reg);//输出:["ABCDE"]
reg.exec(str,'i');//输出:["ABCDE", "A", "BCD", "D", "E"]
RegExp.$1;//输出:"A"
RegExp.$2;//输出:"BCD"
RegExp.$3;//输出:"D"
RegExp.$4;//输出:"E"

这样就可以很明白的看出分组的嵌套关系了

总结来说:大的分组中存在小的分组时,小的分组是排在该大分组后面的分组,以此类推

以上所述就是本文的全部内容了,希望大家能够喜欢。

Javascript 相关文章推荐
找出字符串中出现次数最多的字母和出现次数精简版
Nov 07 Javascript
使用jquery实现div的tab切换实例代码
May 27 Javascript
alert中断settimeout计时功能
Jul 26 Javascript
jQuery使用hide方法隐藏元素自身用法实例
Mar 30 Javascript
JavaScript中的Math.SQRT1_2属性使用简介
Jun 14 Javascript
使用JavaScript和CSS实现文本隔行换色的方法
Nov 04 Javascript
JavaScript页面实时显示当前时间实例代码
Oct 23 Javascript
详解Vue.js项目API、Router配置拆分实践
Mar 16 Javascript
深入理解与使用keep-alive(配合router-view缓存整个路由页面)
Sep 25 Javascript
利用js canvas实现五子棋游戏
Oct 11 Javascript
微信小程序入门之指南针
Oct 22 Javascript
vue监听键盘事件的相关总结
Jan 29 Vue.js
JavaScript实现基于Cookie的存储类实例
Apr 10 #Javascript
JavaScript 变量、作用域及内存
Apr 08 #Javascript
JavaScript Function函数类型介绍
Apr 08 #Javascript
JavaScript 模块化编程(笔记)
Apr 08 #Javascript
JavaScript DOM事件(笔记)
Apr 08 #Javascript
javascript笛卡尔积算法实现方法
Apr 08 #Javascript
JavaScript获取指定元素位置的方法
Apr 08 #Javascript
You might like
PHP+DBM的同学录程序(2)
2006/10/09 PHP
经典的PHPer为什么被认为是草根?
2007/04/02 PHP
php入门学习知识点二 PHP简单的分页过程与原理
2011/07/14 PHP
php开发文档 会员收费1期
2012/08/14 PHP
手把手教你打印出PDF(关于fpdf的简单应用)
2013/06/25 PHP
执行、获取远程代码返回:file_get_contents 超时处理的问题详解
2013/06/25 PHP
php上传图片生成缩略图(GD库)
2016/01/06 PHP
PHP开发制作一个简单的活动日程表Calendar
2016/06/20 PHP
php基于openssl的rsa加密解密示例
2016/07/11 PHP
jquery关于页面焦点的定位(文本框获取焦点时改变样式 )
2010/09/10 Javascript
父元素与子iframe相互获取变量和元素对象的具体实现
2013/10/15 Javascript
解决jquery版本冲突的有效方法
2014/09/02 Javascript
JavaSciprt中处理字符串之sup()方法的使用教程
2015/06/08 Javascript
jquery实现鼠标经过显示下划线的渐变下拉菜单效果代码
2015/08/24 Javascript
JavaScript如何禁止Backspace键
2015/12/02 Javascript
使用webpack搭建pixi.js开发环境
2020/02/12 Javascript
Vue.js中使用Vuex实现组件数据共享案例
2020/07/31 Javascript
Python中文编码那些事
2014/06/25 Python
Python常见加密模块用法分析【MD5,sha,crypt模块】
2017/05/24 Python
python实现神经网络感知器算法
2017/12/20 Python
Python requests模块实例用法
2019/02/11 Python
详解Python中的各种转义符\n\r\t
2019/07/10 Python
用Python获取摄像头并实时控制人脸的实现示例
2019/07/11 Python
Python 写了个新型冠状病毒疫情传播模拟程序
2020/02/14 Python
Python爬虫之Selenium实现窗口截图
2020/12/04 Python
python通过cython加密代码
2020/12/11 Python
opencv python 对指针仪表读数识别的两种方式
2021/01/14 Python
Booking.com亚太地区:Booking.com APAC
2020/02/07 全球购物
Java面试题汇总
2015/12/06 面试题
八年级英语教学反思
2014/01/09 职场文书
11月升旗仪式讲话稿
2014/02/15 职场文书
摄影专业毕业生求职信
2014/03/13 职场文书
大学生村官工作心得体会
2016/01/23 职场文书
简历上的自我评价,该怎么写呢?
2019/06/13 职场文书
golang中的并发和并行
2021/05/08 Golang
Spring中bean集合注入的方法详解
2022/07/07 Java/Android