lisa2moon
2016-06-15 10:45
/[^#].*/.exec(selector)[0] 这部分怎么理解呢?
[]中的^表示‘非’的意思,也就是不要#。整个正则表示去掉了#的其他字符。比如传入的是‘#first’,document.getElementId('first')
首先selector是传入的参数,就是jquery中$("#first")中的#first。因为document.getElementById()传入的参数没有前面的#,例如一个div<div id='frist'>,原生的javascript使用document.getElementById('first'),在jquery中是$('#first'), /[^#].*/.exec(selector)[0]就是为了帮你去掉那个#号。再说一下exec(),它的返回值是一个类数组,类数组的第一项保存着刚匹配到的字符。
//中间的数组符号是什么意思啊?能详细介绍下么?
我记得^前面好像没有其他字符了啊?
[^#]:以#号开头;
. :一个元字符,匹配除了换行符以外的任意字符。
* :同样是元字符,不过它代表的不是字符,也不是位置,而是数量——它指定*前边的内容可以连续重复使用任意次以使整个表达式得到匹配。
jQuery源码解析(架构与依赖模块)
84049 学习 · 280 问题
相似问题