jQuery源码学习(6) - 一个正则

jquery ajax模块的一个正则表达式

rurl = /^([\w.+-]+:)(?:\/\/([^\/?#:]*)(?::(\d+)|)|)/;

这个表达式是用于提取 url中的 protocol:host:port

几个知识点复习一下:
1. ^ 匹配一个输入或一行的开头, 例如/^a/匹配"an" 不匹配"An",
    如果设置了Multiline属性,^也匹配“\n”或“\r”之后的位置
    ^ 出现在中括号时,匹配未包含其之后的任意字符,例如[^xyz]表示不匹配xyz

2. 分组
    分为捕获性分组和非捕获性分组,捕获分组会存储匹配的内容,以便下次使用,
    非捕获性分组不存储匹配的内容,以(?:...)表示

3. [\w.+-] protocol 包含 字母数字,.+-这几类字符,并且是以字母开头,参考URI 
    .+都是特殊字符,为什么不转义呢?[\w\.\+-]
    奇怪的是chrome下面测试[\w.+-]和[\w\.\+-]是等价的?

4. | 选择符,rurl中选择符的使用有点奇怪,
    /x|/ 的意思是匹配x或者空字符串
    var cc = /(x)|()/ -> ["", undefined, ""];

jQuery源码学习(6) - 一个正则,古老的榕树,5-wow.com

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。