jQuery 源码剖析-2 几个正则表达式

简单的正则表达式

 

// Is it a simple selector

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

 

/  / 表示这是正则表达式

^ 表示开始部分

$ 表示结束部分

 

 

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

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

[^:#/[/.] 表示除了 :, #, [, . 之外的任何字符

[^:#/[/.]* 表示出了 :, #, [, . 之外的任何字符从 0 到任意次的重复

 

 

 

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

// (both of which we optimize for)

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

 

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

 

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

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

 

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

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

 

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

.|/s 表示任意字符

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

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

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

 

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

 

后面为 ^#(/w+)&

 

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

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

#(/w+) 表示以 # 开始的一个以上的单词字符,也就是 ID

 

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值