浅谈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中settimeout方法加参数
Feb 28 Javascript
查找页面中所有类为test的结点的方法
Mar 28 Javascript
异步JavaScript编程中的Promise使用方法
Jul 28 Javascript
自己动手写的javascript前端等待控件
Oct 30 Javascript
全面解析jQuery $(document).ready()和JavaScript onload事件
Jun 08 Javascript
bootstrap IE8 兼容性处理
Mar 22 Javascript
ZeroClipboard.js使用一个flash复制多个文本框
Jun 19 Javascript
从源码看angular/material2 中 dialog模块的实现方法
Oct 18 Javascript
基于Vue制作组织架构树组件
Dec 06 Javascript
使用FileReader API创建Vue文件阅读器组件
Apr 03 Javascript
vue-video-player 断点续播的实现
Feb 01 Vue.js
详解JVM系列之内存模型
Jun 10 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下利用header()函数设置浏览器缓存的代码
2010/09/01 PHP
PHP strip_tags() 去字符串中的 HTML、XML 以及 PHP 标签的函数
2016/05/22 PHP
php用户密码加密算法分析【Discuz加密算法】
2016/10/12 PHP
php+ajax实现仿百度查询下拉内容功能示例
2017/10/20 PHP
JS 遮照层实现代码
2010/03/31 Javascript
jquery jqPlot API 中文使用教程(非常强大的图表工具)
2011/08/15 Javascript
javascript 获取模态窗口的滚动位置代码
2013/08/06 Javascript
JS实现定时页面弹出类似QQ新闻的提示框
2013/11/07 Javascript
node.js中使用q.js实现api的promise化
2014/09/17 Javascript
BootStrap Validator对于隐藏域验证和程序赋值即时验证的问题浅析
2016/12/01 Javascript
JavaScript、C# URL编码、解码总结
2017/01/21 Javascript
Vuex之理解Getters的用法实例
2017/04/19 Javascript
jQuery实现的回车触发按钮事件功能示例
2018/03/25 jQuery
javascript中如何判断类型汇总
2019/05/14 Javascript
[25:59]Newbee vs TNC 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
Python中selenium实现文件上传所有方法整理总结
2017/04/01 Python
Python虚拟环境virtualenv的安装与使用详解
2017/05/28 Python
python3实现域名查询和whois查询功能
2018/06/21 Python
用Django写天气预报查询网站
2018/10/21 Python
Python中垃圾回收和del语句详解
2018/11/15 Python
python实现爬山算法的思路详解
2019/04/09 Python
python使用Paramiko模块实现远程文件拷贝
2019/04/30 Python
Form表单及django的form表单的补充
2019/07/25 Python
tensorflow实现对张量数据的切片操作方式
2020/01/19 Python
python中文分词库jieba使用方法详解
2020/02/11 Python
python用什么编辑器进行项目开发
2020/06/17 Python
Python2与Python3关于字符串编码处理的差别总结
2020/09/07 Python
Cpython解释器中的GIL全局解释器锁
2020/11/09 Python
Python爬虫实现selenium处理iframe作用域问题
2021/01/27 Python
UGG雪地靴德国官网:UGG德国
2016/11/19 全球购物
劲霸男装广告词改编版
2014/03/21 职场文书
作风转变年心得体会
2014/10/22 职场文书
让生命充满爱观后感
2015/06/08 职场文书
Redis 配置文件重要属性的具体使用
2021/05/20 Redis
IDEA使用SpringAssistant插件创建SpringCloud项目
2021/06/23 Java/Android
Java处理延时任务的常用几种解决方案
2022/06/01 Java/Android