jQuery中的quickExpr

jQuery 源码中的 quickExpr 是用来检测参数 selector 是否是复杂的 HTML 代码(如“abc<div>”)或 #id,匹配结果存放在数组 match 中

1 // A simple way to check for HTML strings or ID strings
2 // Prioritize #id over <tag> to avoid XSS via location.hash (#9521)
3 quickExpr = /^(?:[^#<]*(<[wW]+>)[^>]*$|#([w-]*)$)/;

quickExpr = /^(?:pattern)/;

         pattern = p1|p2;

              p1 = [^#<]*(<[wW]+>)[^>]*$;

              p2 = #([w-]*)$; 

1、(?:pattern):表示匹配 pattern 但是不记住匹配项

2、p1:匹配复杂的 HTML

3、p2:匹配 #id

var quickExpr = /^(?:[^#<]*(<[wW]+>)[^>]*$|#([w-]+)$)/;
ss="aa<dd>#dd</cc>ff";
match=quickExpr.exec(ss);

//["aa<dd>#dd</cc>ff", "<dd>#dd</cc>", undefined, index: 0, input: "aa<dd>#dd</cc>ff"]
console.log(match);

//['#target', undefined, 'target']
quickExpr.exec( '#target' );


作者:狂流
出处:http://www.cnblogs.com/kuangliu/
欢迎转载,分享快乐! 如果觉得这篇文章对你有用,请抖抖小手,推荐一下!

原文地址:https://www.cnblogs.com/kuangliu/p/4712858.html