首页 > Web开发 > 详细

菜鸟读jQuery 2.0.3 源码分析系列(2)

时间:2014-07-22 23:15:02      阅读:510      评论:0      收藏:0      [点我收藏+]

 

原文链接在这里,作为一个菜鸟,我就一边读一边写

jQuery 2.0.3 源码分析系列

我是菜鸟,推荐木有入门或者刚刚JS入门摸不着边的看看,大大们手下留情,想一起学习的Jser可以给我留言。

今天写一点,第二篇jQuery选择器

bubuko.com,布布扣
// A simple way to check for HTML strings
//一个简单的方法来检查HTML字符串
//
Prioritize #id over <tag> to avoid XSS via location.hash (#9521)
//优先处理#id为了避免通过XSS攻击 // Strict HTML recognition (#11290: must start with <) //严格的HMLT识别
rquickExpr = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,
bubuko.com,布布扣

 看到这个就知道哭瞎两个字怎么写了。。看来看去最后还是逃不脱正则的魔掌/(ㄒoㄒ)/~~

我先拆分一下这个正则吧。

^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$
?:\s*(<[\w\W]+>)[^>]*|#([\w-]*)
?:
\s*(<[\w\W]+>)[^>]*
|
#([\w-]*)

拆分之后就是上面了。
?: |

这个应该是一个正则表达方式,我看了文字描述始终有些不懂。之前看了,又忘掉啦!!等一会找篇文章看看复习下。

bubuko.com,布布扣
\s*(<[\w\W]+>)[^>]*
//这个代码再拆分
\s*//匹配任何空白字符,包括空格、制表符、换页符等等。
<[\w\W]+>
//    \w
匹配包括下划线的任何单词字符。等价于“[A-Za-z0-9_]”。
//  \W
匹配任何非单词字符。等价于“[^A-Za-z0-9_]”。
[^>]*//除了>括号结尾的0个或者多个
bubuko.com,布布扣

上面这个正则,的意思就是,匹配开头没有或者多个空白字符,
第二个字符是<中间有一个或者多个任意字符串(\w\W包括了所有字符)下一个字符是>,最后字符不是>结尾的字符串

 

3. #([\w-]*))$

  • 匹配结尾带上#号的任意字符,包括下划线与-

吐槽文章中的这一句话,实在是有歧义啊。。

应该这么理解。匹配以#号开头的任意字符串结尾。

(?:pattern) 匹配pattern但不获取匹配的子字符串,也就是说这是一个非获取匹配,不存储匹配的子字符串用于向后引用。这在使用或字符“(|)”来组合一个模式的各个部分是很有用。例如“industr(?:y|ies)”就是一个比“industry|industries”更简略的表达式。

 总结一下,上面的这个正则表达式所表达的是,匹配任何html标签和#id。

菜鸟读jQuery 2.0.3 源码分析系列(2)

原文:http://www.cnblogs.com/nunn/p/3512856.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!