浅谈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 相关文章推荐
javascript 打印页面代码
Mar 24 Javascript
Dreamweaver jQuery智能提示插件,支持版本提示,支持1.6api
Jul 31 Javascript
js局部刷新页面时间具体实现
Jul 04 Javascript
php显示当前文件所在的文件以及文件夹所有文件以树形展开
Dec 13 Javascript
js中for in的用法示例解析
Dec 25 Javascript
JavaScript数据推送Comet技术详解
Apr 07 Javascript
AngularJS递归指令实现Tree View效果示例
Nov 07 Javascript
详解Web使用webpack构建前端项目
Sep 23 Javascript
vue项目中用cdn优化的方法
Jan 03 Javascript
JS设计模式之命令模式概念与用法分析
Feb 06 Javascript
Vue 401配合Vuex防止多次弹框的案例
Nov 11 Javascript
javascript实现滚轮轮播图片
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
PHPMYADMIN导入数据最大为2M的解决方法
2012/04/23 PHP
php简单实现快速排序的方法
2015/04/04 PHP
phalcon model在插入或更新时会自动验证非空字段的解决办法
2016/12/29 PHP
Jquery 弹出层插件实现代码
2009/10/24 Javascript
jquery及原生js获取select下拉框选中的值示例
2013/10/25 Javascript
100个不能错过的实用JS自定义函数
2014/03/05 Javascript
Javascript中Array用法实例分析
2015/06/13 Javascript
配置Grunt的Task时通配符支持和动态生成文件名问题
2015/09/06 Javascript
JavaScript性能优化之小知识总结
2015/11/20 Javascript
jquery插件方式实现table查询功能的简单实例
2016/06/06 Javascript
PassWord输入框代码分享
2016/06/07 Javascript
移动端H5开发 Turn.js实现很棒的翻书效果
2016/06/20 Javascript
微信小程序 toast 详解及实例代码
2016/11/09 Javascript
js上下视差滚动简单实现代码
2017/03/07 Javascript
Angular4学习笔记之新建项目的方法
2017/07/18 Javascript
JS加密插件CryptoJS实现AES加密操作示例
2018/08/16 Javascript
使用vue实现各类弹出框组件
2019/07/03 Javascript
浅谈在vue-cli3项目中解决动态引入图片img404的问题
2020/08/04 Javascript
[03:38]2014DOTA2西雅图国际邀请赛 VG战队巡礼
2014/07/07 DOTA
[02:03]DOTA2亚洲邀请赛 HGT战队出场宣传片
2015/02/07 DOTA
Python连接DB2数据库
2016/08/27 Python
python实现二维码扫码自动登录淘宝
2016/12/27 Python
django js实现部分页面刷新的示例代码
2018/05/28 Python
Python模拟自动存取款机的查询、存取款、修改密码等操作
2018/09/02 Python
python基于opencv实现人脸识别
2021/01/04 Python
Python爬虫后获取重定向url的两种方法
2021/01/19 Python
在Pycharm中安装Pandas库方法(简单易懂)
2021/02/20 Python
CSS3 animation实现逐帧动画效果
2016/06/02 HTML / CSS
详解canvas在圆弧周围绘制文本的两种写法
2018/05/22 HTML / CSS
SQL Server 2000数据库的文件有哪些,分别进行描述
2013/03/30 面试题
Java软件工程师综合面试题笔试题
2013/09/08 面试题
硅酸盐工业控制专业应届生求职信
2013/11/02 职场文书
应届毕业生自荐信
2014/05/28 职场文书
爱岗敬业事迹材料
2014/12/24 职场文书
五年级下册复习计划
2015/01/19 职场文书
婚庆答谢词大全
2015/09/29 职场文书