非捕获性分组:
前面讲了创建反向引用的分组,这种分组一般称为捕获性分组。同时也存在一种非捕获性分组。它不会创建反向引用,因为在比较长的正则表达式中,分组多了会很影响效率。所以使用非捕获性分组。
创建非捕获性分组是这样的(?:开始然后写表达式。例如
var str = "#123231312";
var patt = /#(?:\d)/
console.log(patt.test(str));
console.log(RegExp["$1"]);
得到结果为:
true
(an empty string)
可以看到满足了我们的要求没有分组。
前瞻:
有时候我们需要某个特定的字符串分组出现在特定的字符串之前才捕获它,这种就是前瞻了。前瞻创建为:(正则表达式捕获的字符串(?=特定字符串))。看实例:
var str = "bedroom";
var str2 = "beded";
var patt = /(bed(?=room))/
console.log(patt.test(str));
console.log(RegExp["$1"]);
console.log(patt.test(str2));
得到结果:
true
bed
false
上面是正向前瞻。看负向前瞻:
(正则表达式捕获的字符串(?!特定字符串))
var str = "bedroom";
var str2 = "beded";
var patt = /(bed(?!room))/
console.log(patt.test(str));
console.log(RegExp["$1"]);
console.log(patt.test(str2));
得到结果:
参考《javascript高级程序设计》
分享到:
相关推荐
下面小编就为大家带来一篇JavaScript正则表达式-非捕获性分组。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
2.2非捕获性分组匹配 (?:) 2前瞻匹配: 2.1正向前瞻匹配: (?=表达式) 后面一定要匹配有什么 2.2反向前瞻匹配: (?!表达式) 后面一定不能要有什么 1.1、捕获性分组匹配 () var str1 = "holle word 123456 can ...
之前写了一篇关于正则新手入门的文章,本以为对正则表达式相对比较了解 但是今天我又遇到了一个坑,可能是自己不够细心的原因吧,今天就着重和大家分享一下javascript正则表达式中的分组。如果你对JS正则表达式不够...
本文实例讲述了JS正则表达式非捕获分组用法。分享给大家供大家参考,具体如下: 最近在看JsonSQL的时候,通过源码中的一段正则表达式,了解到了什么是非捕获分组以及它的使用场景。在js中,正常的捕获分组格式是(XX)...
本文档说明:javascript鼠标定位、捕获焦点等;
javascript正则表达式中分组详解.docx
JavaScript的安全性和执行效率分析,kth文件,用caj看哈
基于JavaScript实现随机数的分组抽取.pdf
深入理解JS正则表达式—分组 ...•非捕获性分组 捕获性分组 捕获性分组会在 比如 match exec这样的函数中以第二项,第三项的形式得到相应分组的结果。先来看一个例子吧 var reg = /test(\d+)/; var s
javascript正则表达式中分组详解_.docx
javascript事件冒泡,事件捕获和事件委托详解 1、事件冒泡:在javascript事件传播过程中,当事件在一个元素上出发之后,事件会逐级传播给先辈元素,直到document为止,有的浏览器可能到window为止。并不是所有的...
kernel.css 非侵入性语义化css和JavaScript框架
鼠标拖萨达噶地方按时到岗阿斯顿噶士大夫ljoiasjdfjsdfkljsadklfjsakldfjl;askjfl;askjfl;askjfl;aksjfkj;hnfkl;dsjfosjandfskla;dfnl;skjfl;skdjfl;asjdfl;asdjfadsf
javascript正则表达式之分组概念与用法实例.docx
Binoculars 是一个开源的数据捕获库。主要目录是为了让所有的数据都能轻松获取。目前,它主要应用在捕获HTML5 视频元素的数据。 标签:Binoculars
js 实现 JavaScript捕获方向键! 值得下载看看!资源免费,大家分享!!