码迷,mamicode.com
首页 > Web开发 > 详细

JS正则表达式之--?:

时间:2018-11-17 17:58:13      阅读:204      评论:0      收藏:0      [点我收藏+]

标签:src   nbsp   字符   匹配   ack   col   获取   bbs   eid   

使用形如(?:pattern)的正则就可以避免保存括号内的匹配结果。

?:匹配冒号后的内容但是不获取匹配结果;不进行储存供以后使用

 下面这个正则是为了实现只匹配以b或者c开头的字符串,一直匹配到换行字符,但是。可以使用“\1”来反向引用这个括号里的子 正则表达式所匹配的内容。而且exec方法也会将这个字正则表达式的匹配结果保存到返回的结果中。 

(1)reg = /^(b|c).+/;

        str=‘bbs.blueidea.com‘;

技术分享图片

(2)reg = /^(?:b|c).+/;

       str=‘bbs.blueidea.com‘;

技术分享图片

下面还要注意一点就是一个括号里面还有括号:

例如:(()())代表的是三个子表达式

技术分享图片

 

(3)

技术分享图片

(4)

reg = /^(?:b|c)\1/;

str=‘bbs.blueidea.com‘;

 

返回null。由于根本就没有记录括号内匹配的内容,自然没有办法反向引用了

但是多加一层括号就能达到效果

reg = /^((?:b|c))\1/;可以测试一波

个人理解:虽然前面有?:的子表达式没有保存匹配到的值;但是他的父级子表达式保存了

技术分享图片

技术分享图片

 

JS正则表达式之--?:

标签:src   nbsp   字符   匹配   ack   col   获取   bbs   eid   

原文地址:https://www.cnblogs.com/pittle-z/p/9974712.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!