zoukankan      html  css  js  c++  java
  • jQuery1.3.2 源码学习 2 两个重要的正则表达式

    32 // Is it a simple selector

    33 isSimple = /^.[^:#\[\.,]*$/

     

    / / 表示这是正则表达式

    ^ 表示开始部分

    $ 表示结束部分

      

    . 匹配除了 \n 之外的任何字符

    [^character_group] 表示不在字符集合中

    [^:#\[\.,] 表示除了冒号 (:), #, 前中括号([), 句号(.) 和逗号(,)之外的任何一个字符

    [^:#\[\.,]* 表示上述任意一个字符从 0 到任意次的重复

     

    29 // A simple way to check for HTML strings or ID strings

    30 // (both of which we optimize for)

    31 var quickExpr = /^[^<]*(<(.|\s)+>)[^>]*$|^#(\w+)$/;

     

    正则表达式的内容为 ^[^<]*(<(.|\s)+>)[^>]*$|^#(\w+)$

     

    从中间的 | 或者, 将表达式分为两部分

    前面为  ^[^<]*(<(.|\s)+>)[^>]*$

     

    [^<] 表示除了 < 之外的任何一个字符

    [^<]* 表示任意多个除了 < 之外的任意字符

     

    \s 表示任意的空白字符,例如,空格,回车,制表等等。

    .|\s 表示任意字符

    (.|\s)+ 表示任意多个字符,注意,因为是一个 +,所以是贪婪模式。

    <(.|\s)+> 表示开始为 < ,中间为任意字符,由 > 结尾的任意串,也就是以 < 开始,以 > 结束的最长的串。

    [^>]* 表示除了 > 之外的任意多个字符

     

    合起来的意思就是,开始有多个除 < 之外的任意字符,中间为 < 开头,中间为任意串,后面再跟着 > ,最后为任意多个除 > 之外的字符的串,也就是 html

     

    后面为 ^#(\w+)&

     

    \w 表示任何一个单词字符,即 [a-zA-Z_0-9]

    \w+ 表示 1 个以上的字符

    #(\w+) 表示以 # 开始的一个以上的单词字符,也就是jQuery 中的 ID 表示格式

     

    此处使用了 3 个括号,表示分组,如果匹配了第一个分组,下标为 1 ,匹配了第三个分组,则说明为 ID

  • 相关阅读:
    python的sorted相关
    dict两种遍历方法
    python 深拷贝和浅拷贝浅析
    牛人总结python中string模块各属性以及函数的用法,果断转了,好东西
    Python二分查找
    堆和栈区别
    一次完整的HTTP事务是怎样一个过程?(转)
    ------shell学习
    BZOJ1025 [SCOI2009]游戏
    BZOJ1024 [SCOI2009]生日快乐
  • 原文地址:https://www.cnblogs.com/haogj/p/1443471.html
Copyright © 2011-2022 走看看