作家
登录

统计jQuery中各字符串出现次数的工具

作者: 来源:www.28hudong.com 2013-03-30 00:29:40 阅读 我要评论

复制代码 代码如下:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"/> <title>工具:统计jQuery中各字符串出现次数</title> <script src="http://demo.jb51.net/jslib/jquery/jquery.js" type="text/javascript"></script> </head> <body> <p>源文件(将jQuery源码复制到下面的文本域):</p> <p><textarea id="myjquery" style="width: 510px; height: 250px; padding: 2px;">..</textarea></p> <p><input id="mybtn2" style="position: relative; left: 349px;" type="button" value="统计所有字符串出现次数" /></p> <div id="myshow2" style="width: 500px; height: 250px; border: 1px dotted #8B8D72; overflow: auto; padding: 5px;"> </div> <p> </p> <p><label for="myinput">字符串:<input id="myinput" type="text" /> <input id="mybtn1" style="position: relative; left: 130px;" type="button" value="统计单个字符串出现次数" /> </label></p> <div id="myshow1" style="width: 500px; height: 100px; border: 1px dotted #8B8D72; overflow: auto; padding: 5px;"> </div> <p> </p> <p>点击“统计所有字符出现次数”按钮后发现,字符串“string”竟然出现了44次,多数是诸如以下的代码</p> <div class="cnblogs_Highlighter"> <pre class="brush:javascript;gutter:true;">typeof selector === "string" typeof data !== "string" type === "string" typeof context === "string" getByName = typeof name === "string" // ... </pre> </div> <p>  </p> <p>如果使用一个变量替换,使用工具压缩时将会进一步减少文件的大小。</p> <p> </p> <p> </p> <script type="text/javascript">// <![CDATA[ setTimeout(function(){ function buildRe(keywords) { var rObj = {}; if (keywords.constructor !== Array) { return; } keywords.forEach(function(it) { rObj[it] = RegExp(''+it, 'g'); }); return rObj; } function count(rObj, source, callback, sortType) { var r, rarr, num, type, func, result = []; var subCount = function(arr) { var i, re, num, resu; i = num = 0; for (i; i<arr.length; i++) { re = arr[i]; while( (resu=re.exec(source)) != null ) { num++; } } return num; }; for (type in rObj) { rarr = rObj[type]; if (rarr.constructor !== Array) { rarr = [rarr]; } num = subCount(rarr); result.push({type: type, num: num}); } // sort 0:次数顺序 1:次数倒序 if (typeof sortType !== 'undefined') { if (sortType===0) { func = function(a, b) { return a.num - b.num; }; } else if (sortType===1) { func = function(a, b) { return b.num - a.num; }; } result.sort(func); } callback(result); } function main(keywords, source, callback, sortType) { var rObj = keywords.constructor === Array ? buildRe(keywords) : keywords; count(rObj, source, callback, sortType); } var rObj = { string: [/'string'/g, /"string"/g], number: [/'number'/g, /"number"/g], 'boolean': [/'boolean'/g, /"boolean"/g], object: [/'object'/g, /"object"/g], 'undefined': [/'undefined'/g, /"undefined"/g], 'function': [/'function'/g, /"function"/g], 'array': [/'array'/g, /"array"/g], 'ready': [/'ready'/g, /"ready"/g], input: [/'input'/g, /"input"/g], type: [/'type'/g, /"type"/g], text: [/'text'/g, /"text"/g], radio: [/'radio'/g, /"radio"/g], checkbox: [/'checkbox'/g, /"checkbox"/g], password: [/'password'/g, /"password"/g], submit: [/'submit'/g, /"submit"/g], button: [/'button'/g, /"button"/g], id: [/'id'/g, /"id"/g], div: [/'div'/g, /"div"/g], body: [/'body'/g, /"body"/g], html: [/'html'/g, /"html"/g], HTML: [/'HTML'/g, /"HTML"/g], parentNode: [/'parentNode'/g, /"parentNode"/g], nextSibling: [/'nextSibling'/g, /"nextSibling"/g], iframe: [/'iframe'/g, /"iframe"/g], before: [/'before'/g, /"before"/g], after: [/'after'/g, /"after"/g], script: [/'script'/g, /"script"/g], width: [/'width'/g, /"width"/g], height: [/'height'/g, /"height"/g], top: [/'top'/g, /"top"/g], left: [/'left'/g, /"left"/g], absolute: [/'absolute'/g, /"absolute"/g], relative: [/'relative'/g, /"relative"/g], 'static': [/'static'/g, /"static"/g], fixed: [/'fixed'/g, /"fixed"/g], href: [/'href'/g, /"href"/g], border: [/'border'/g, /"border"/g], margin: [/'margin'/g, /"margin"/g], marginTop: [/'marginTop'/g, /"marginTop"/g], marginBottom: [/'marginBottom'/g, /"marginBottom"/g], marginLeft: [/'marginLeft'/g, /"marginLeft"/g], marginRight: [/'marginRight'/g, /"marginRight"/g], padding: [/'padding'/g, /"padding"/g], paddingTop: [/'paddingTop'/g, /"paddingTop"/g], paddingLeft: [/'paddingLeft'/g, /"paddingLeft"/g], paddingRight: [/'paddingRight'/g, /"paddingRight"/g], display: [/'display'/g, /"display"/g], olddisplay: [/'olddisplay'/g, /"olddisplay"/g], none: [/'none'/g, /"none"/g], hidden: [/'hidden'/g, /"hidden"/g], inline: [/'inline'/g, /"inline"/g], opacity: [/'opacity'/g, /"opacity"/g], show: [/'show'/g, /"show"/g], hide: [/'hide'/g, /"hide"/g], toggle: [/'toggle'/g, /"toggle"/g], json: [/'json'/g, /"json"/g], success: [/'success'/g, /"success"/g], fxshow: [/'fxshow'/g, /"fxshow"/g], fx: [/'fx'/g, /"fx"/g], '.run': [/'.run'/g, /".run"/g], 'http:': [/'http:'/g, /"http:"/g], error: [/'error'/g, /"error"/g], abort: [/'abort'/g, /"abort"/g], GET: [/'GET'/g, /"GET"/g], POST: [/'POST'/g, /"POST"/g], get: [/'get'/g, /"get"/g], filter: [/'filter'/g, /"filter"/g], px: [/'px'/g, /"px"/g] }; function callback1(result) { var obj = result[0]; var myshowEL = $('#myshow1'); myshowEL = myshowEL.empty(); myshowEL.append('<div>' + obj.type + ': <span style="color: blue;">' + obj.num + '</span></div>'); } function callback2(result) { var myshowEL = $('#myshow2'); myshowEL = myshowEL.empty(); for (var i=0; i<result.length; i++) { var obj = result[i]; myshowEL.append('<div>"' + obj.type + '": <span style="color: blue;">' + obj.num + '</span></div>'); } } $('#mybtn1').click(function(){ var $txtarea = $('#myjquery'); var source = $txtarea.val(); var val = $('#myinput').val(); if (val == '' || val.length<2) { alert('至少两个字符'); return; } var keywords = [val]; main(keywords, source, callback1, 1) }); $('#mybtn2').click(function(){ var $txtarea = $('#myjquery'); var source = $txtarea.val(); main(rObj, source, callback2, 1); }); }, 1000); // ]]></script> </body> </html>

  推荐阅读

  Javascript 世界时区时间显示代码

Javascript 世界時間時間顯示 Last modified: Mon Oct 31 02:04:17 BRST 2011 [Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]>>>详细阅读


本文标题:统计jQuery中各字符串出现次数的工具

地址:http://www.17bianji.com/kaifa2/JS/23446.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)