手机版

jQuery源代码中的chunker常规过滤器分析

时间:2021-10-08 来源:互联网 编辑:宝哥软件园 浏览:

复制代码如下:var chunker=/((?\((?\([^()] \)|[^()] ) \)|\[(?\[[^[\]]*\]|[''][^'']*['']|[^[\]''] ) \]|\\.|[^ ~,(\[\\] ) |[ ~])(\s*,\s*)?((?3360.| \ r | \ n) *)/g,这是Jq中最长的正则,研究了很久,一直是懵懂的。我觉得调试后更容易理解,然后更容易一步一步分析数值。我尽量让图形更直观,用不同的颜色区分,如下图所示:

分组被下面的代码一个一个拆分成数组:复制代码如下: //这里循环的功能是将每个选择器拆分成parts数组,例如div#idp ul li拆分成['div # id ','',' p ',' ul ',' li'] while ((chunker。exec('),==null) {//soFar存储过滤第一层后的选择器字符串,即图片上的分组3 soFar=m[3];//选择器块的第一部分被推入数组部分. push(m[1]);//如果拆分为逗号',',上一组结束,跳出循环,到达另一组选择器,如果(m[2]) {//记录另一组选择器extra=m[3];打破;}}其他,如ID、类等。可以很容易理解。复制代码如下:匹配: {//\ u00c 0-\ ufff匹配许多国家或家庭的字母id 3360/#((?3360[\ w \ u00c 0-\ ufff-]| \ \。))/,//比如:#myId CLASS: /\。((?3360[\ w \ u00c 0-\ ufff-]| \ \。))/,//如:myclass name3360/\ [name=[''] *(?3360[\ w \ u00c 0-\ ufff-]| \ \。)] [''] * \]/,//如:[name=' my name'] attr3360/\ [\ s *(什么?[\ w \ u00c 0-\ ufff-]| \ \。))\s*(吗?(\S?=)\s*(['']*)(。*?)\3|)\s*\]/,//如:[attribute=' value'] tag:/(?3360[\ w \ u00c 0-\ ufff \ *-]| \ \。))/,//如:div p a child:/:(仅|第n个|最后一个|第一个)-child(?\((偶数|奇数|[\dn -]*)\))?/,//如:第一个孩子或:第n个孩子(H5N1) pos :/:(第n个| eq | gt | lt | first | last |偶数|奇数)(?\((\d*)\))?(?=[-] | $)/,//如: th(3)span伪3360/:(?[\ w \ u00c 0-\ ufff-]| \ \。) )(?\((['']?)((?\([^\)] \)|[^\(\)]*) )\2\))?///: jlkj \ kjl(' KL(kklk)KL ')}未完待续.

版权声明:jQuery源代码中的chunker常规过滤器分析是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。