• JS学习笔记——如何在正则表达式中控制捕获


      本篇学习笔记内容源于《Secrets of the JavaScript Ninja》  

      在正则表达式中,圆括号()有这双重功能,第一:为一些操作归类分组(与程序表达式中的用法差不多),第二:用于捕获信息。在一般的应用中,这两种功能并不冲突,但当正则表达式中的圆括号有些多时,就会造成不必要的捕获操作,从而影响真正需要捕获的信息操作。

      例如:var temp = /((xirang-)+)blog/;

      上面的正则表达式主要描述为:在blog前,允许出现一次或者多次“xirang-“。当然,为了捕获blog前面的所有信息,我们在(xirang)+的外部又加了一对圆括号用于实现捕获操作。此时我们可以看到,内部的圆括号用于将xirang-归类分组,以便其能够以整体的形式运用+操作符,但恰恰是这对圆括号影响了我们本身想要的单个捕获的操作逻辑(只想要一次捕获,即blog前的信息)。

      如何取消内部圆括号的捕获功能,使其只具有聚类分组功能呢,请见下面的操作(在圆括号一开始运用?:操作符)

      var temp = /((?:xirang-)+)blog/;

      上面的表达式,只将外面的圆括号用于捕获操作,内部的圆括号只具有聚类分组功能,这与我们第一开始的想法一致了。

  • 相关阅读:
    sql server 函数的自定义
    MVC View小技巧
    存储过程实例《转载》
    用递归方法求n!
    八皇后问题之我的理解
    蓝桥杯:排它平方数-java
    谷歌统计使用代码部署和事件API使用
    网站自动登录功能的设计
    通过js来设置cookie和读取cookie,实现登陆时记住密码的功能
    QQ互联第三方登陆 redirect uri is illegal(100010)
  • 原文地址:https://www.cnblogs.com/bingbing/p/2915387.html
Copyright © 2020-2023  润新知