冠军

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

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

posted on   冠军  阅读(1002)  评论(1编辑  收藏  举报

编辑推荐:
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示