您现在的位置:首页 >> JS&Jq >> 内容

javascript正则表达式高级篇

时间:2014-2-21 14:12:30 点击:

  核心提示:javascript正则表达式通过上面基础篇和中级篇的学习,我相信我们都能够写出漂亮的正则了,但是一些特殊的功能也许还需要我们继续往下学习这些高级篇的知识。正则表达式的贪婪模式和懒惰模式:贪婪模式和懒...

javascript正则表达式

通过上面基础篇和中级篇的学习,我相信我们都能够写出漂亮的正则了,但是一些特殊的功能也许还需要我们继续往下学习这些高级篇的知识。

正则表达式的贪婪模式和懒惰模式:

贪婪模式和懒惰模式用言语很难讲解清楚,我们这里使用例子的形式来进行讲解,当然下面的一些知识也会以例子的形式来表达。

var regExp = /8.*8/;

var regExpTwo = /8.*?8/;

var str = "8google8 8google8 8google8";

var resultOne = regExp.exec(str); 此处的结果为google8 8google8 8google它尽量多的想要匹配得更多,所以为贪婪模式,其实是用了重复(区间)匹配的正则表达式都为贪婪模式;

var resultTwo = regExpTwo.exec(str); 此处的结果为google 它尽量少的匹配,所以为懒惰模式,在重复(区间)元素的后面加上?就变为相应的懒惰模式。

不在多说,相信你已经能够很好的理解正则表达式的贪婪和懒惰模式了。

正则表达式的两条准则:

1,当正则表达式有嵌套的分组时,分组由外向内。

2,正则表达式中的特殊元素匹配时需要加上\

前瞻模式:

前瞻模式是指某个匹配后面必须跟着某个字符串,例子如下:

var regExp = /goo(?=gle)/;

var strOne = google;

var strTwo = googoo;

当匹配第一个字符串时能匹配成功,而匹配第二个字符串时将匹配失败,因为模式规定在goo后面必须要跟着gle,而且返回的结果为goo;

捕获性分组和非捕获性分组:

我们不做言语的讲解直接上例子,例子如下:

var regExp = /(google)\s(2014)/;

var str = "google 2014";

regExp.exec(str); 此处获得一个数组结果集,里面的元素分别为google 2014,google,2014;

如果regExp改为/(google)\s(?:2014)/,则数组中就只会包含两个元素分别为google 2014,google

因为第二个分组为非捕获性的分组

项目经验:

上面讲解了一些特殊的正则表达式,也许在真正的项目中很少用到,但是掌握它们,能让你的知识更加分丰富,遇到比较难的正则表达式不至于手足无措。

作者:不详 来源:网络
共有评论 0相关评论
发表我的评论
  • 大名:
  • 内容:
  • 青春网络编程技术(www.qcfupo.com) © 2020 版权所有 All Rights Reserved.
  • Powered by qcfupo! V3.0sp1
  • 百度友情链接: 百家乐[www.chinawestnews.net/aomenbaijiale/] 赌博网[www.chinawestnews.net/amdbwz/] 海立方[www.bjl.gov.cn/bjgylc/] 娱乐城[www.gtxrmzf.gov.cn/mapai/] 娱乐城[www.hfsf.gov.cn/yfgj/] 威尼斯人[www.hllinkou.gov.cn/baijile/] 澳门威尼斯[www.jjwgj.gov.cn/wnsr/] 888真人[www.lagm.gov.cn/888zhenren/] 百乐坊[www.laoling.gov.cn/blfylc/] 现金网[www.longyu.gov.cn/xjw/] 百家乐[www.chinawestnews.net/ambjl/] 新葡京娱乐场[www.sjzedu.gov.cn/jsylc/] 时时彩[www.snjw.gov.cn/ssc/] 赌博[www.chinawestnews.net/aomendubo/]