浅谈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 相关文章推荐
用js实现的检测浏览器和系统的函数
Apr 09 Javascript
js中parseInt函数浅谈
Jul 31 Javascript
jquery 实现两Select 标签项互调示例代码
Sep 25 Javascript
zepto.js中tap事件阻止冒泡的实现方法
Feb 12 Javascript
简单实现js页面切换功能
Jan 10 Javascript
JavaScript中Array的实用操作技巧分享
Sep 11 Javascript
用AngularJS来实现监察表单按钮的禁用效果
Nov 02 Javascript
利用vue.js实现被选中状态的改变方法
Feb 08 Javascript
解决layui前端框架 form表单,table表等内置控件不显示的问题
Aug 19 Javascript
使用ThinkJs搭建微信中控服务的实现方法
Aug 08 Javascript
vue实现瀑布流组件滑动加载更多
Mar 10 Javascript
js实现滚动条自动滚动
Dec 13 Javascript
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数组内存利用率低和弱类型详细解读
2017/08/10 PHP
js函数般调用正则
2008/04/08 Javascript
js中的值类型和引用类型小结 文字说明与实例
2010/12/12 Javascript
Google的跟踪代码 动态加载js代码方法应用
2012/11/12 Javascript
js单例模式的两种方案
2013/10/22 Javascript
js根据日期判断星座的示例代码
2014/01/23 Javascript
javascript中字符串拼接详解
2014/09/26 Javascript
原生Ajax 和jQuery Ajax的区别示例分析
2014/12/17 Javascript
JavaSacript中charCodeAt()方法的使用详解
2015/06/05 Javascript
javascript每日必学之基础入门
2016/02/16 Javascript
Bootstrap基本模板的使用和理解1
2016/12/14 Javascript
快速入门Vue
2016/12/19 Javascript
javascript history对象详解
2017/02/09 Javascript
vue动态生成dom并且自动绑定事件
2017/04/19 Javascript
vue实现个人信息查看和密码修改功能
2018/05/06 Javascript
小程序分享模块超级详解(推荐)
2019/04/10 Javascript
详解Node.js异步处理的各种写法
2019/06/09 Javascript
[54:54]Newbee vs Serenity 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
详解python中executemany和序列的使用方法
2017/08/12 Python
读取本地json文件,解析json(实例讲解)
2017/12/06 Python
python http接口自动化脚本详解
2018/01/02 Python
python+matplotlib实现礼盒柱状图实例代码
2018/01/16 Python
Python基于sklearn库的分类算法简单应用示例
2018/07/09 Python
Python中查看变量的类型内存地址所占字节的大小
2019/06/26 Python
Python3.6实现根据电影名称(支持电视剧名称),获取下载链接的方法
2019/08/26 Python
使用Python获取当前工作目录和执行命令的位置
2020/03/09 Python
Python实现一个简单的递归下降分析器
2020/08/01 Python
python爬虫利用selenium实现自动翻页爬取某鱼数据的思路详解
2020/12/22 Python
动物科学专业毕业生的自我评价
2013/11/29 职场文书
《一株紫丁香》教学反思
2014/02/19 职场文书
团队激励口号
2014/06/06 职场文书
优秀应届毕业生自荐书
2014/06/29 职场文书
学校感恩教育活动总结
2014/07/07 职场文书
2015年保险公司个人工作总结
2015/05/22 职场文书
2015七夕情人节宣传语
2015/07/14 职场文书
Nginx实现负载均衡的项目实践
2022/03/18 Servers