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

代码如下:

<!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>

(0)

相关推荐

  • jQuery获取字符串中出现最多的数

    推荐阅读:统计jQuery中各字符串出现次数的工具 废话不多说说了,直接给大家贴js代码了. //获取字符串中出现最多的数和它一共出现多少次 var str = 'asdfssaaasasasasaa'; //定义字符串 var json = {}; //定义数组用来存储每个字符元素所对应的个数 for (var i = 0; i < str.length; i++) { //遍历字符串中所有的元素 if (!json[str.charAt(i)]) { //判断当前元素是否已经在数组中存在 s

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

    复制代码 代码如下: <!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=&qu

  • python 统计文件中的字符串数目示例

    题目: 一个txt文件中已知数据格式为: C4D C4D/maya C4D C4D/su C4D/max/AE 统计每个字段出现的次数,比如C4D.maya 先读取文件,将文件中的数据抽取出来: def getWords(filepath): file = open(filepath) wordOne=[] while(file): line = file.readline() word = line.split('/') wordOne.extend(word) if(not line): #

  • Java编程实现统计数组中各元素出现次数的方法

    本文实例讲述了Java编程实现统计数组中各元素出现次数的方法.分享给大家供大家参考,具体如下: package javatest; import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.Map.Entry; import java.util.Set; public class NumOfEle { public static void main(String[] ar

  • Python统计日志中每个IP出现次数的方法

    本文实例讲述了Python统计日志中每个IP出现次数的方法.分享给大家供大家参考.具体如下: 这脚本可用于多种日志类型,本人测试MDaemon的all日志文件大小1.23G左右,分析用时2~3分钟 代码很简单,很适合运维人员,有不足的地方请大家指出哦 #-*- coding:utf-8 -*- import re,time def mail_log(file_path): global count log=open(file_path,'r') C=r'\.'.join([r'\d{1,3}']

  • 在SQL中获取一个长字符串中某个字符串出现次数的实现方法

    在SQL中获取一个长字符串中某个字符串出现次数的实现方法 比如有个字符串: X-BGS-2010-09-15-001 我想知道其中'-'出现的次数,可以用下面的方法实现,而不需要复杂的一个个字符分析. declare @a varchar(100)set @a='X-BGS-2010-09-15-001'select len(replace(@a,'-','--'))-len(@a) 通俗一点讲就是 如果要判断表a中的 字段b中存在几个字母c的话,可以这么写 select len(replace

  • Matlab实现统计集合中各元素出现次数的示例代码

    目录 前言 工具函数类 使用方式 统计数字 统计单词.名称 统计字符 完整代码 前言 统计数组中各个元素数量是一个很常用的功能,但我试着用了MATLAB中自带的统计函数 tabulate: 但是发现了两个问题: 当元素中英文混杂时: X = {'slandarer';'slandarer';'hikari';'hikari';'公众号';'公众号'; 'CSDN';'CSDN';'CSDN'}; tabulate(X) 我们发现中英文混杂时输出会对不齐: 当元素为纯整数数值时: X=[6,5,6

  • awk统计文件中某关键词出现次数的命令

    awk -F "" '{for(i=1;i<=NF;++i) if($i=="a") ++sum}END{print sum}' test.c[root@xiaobb 5906]# awk '{for(i=1;i<=NF;++i) if($i=="test") ++sum}END{print sum}' test.c6[root@xiaobb 5906]# cat test.ctest testktesttesta testtest

  • java统计字符串中指定元素出现次数方法

    本文实例讲解了统计文本中某个字符串出现的次数或字符串中指定元素出现的次数方法,分享给大家供大家参考,具体内容如下 运行效果图: 程序查找的上此文件带"a"的字符在多少次 具体代码如下 package com.zuidaima.util.string; import java.io.*; public class CountString { public static int count(String filename, String target) throws FileNotFoun

  • Python实现统计给定列表中指定数字出现次数的方法

    本文实例讲述了Python实现统计给定列表中指定数字出现次数的方法.分享给大家供大家参考,具体如下: 直接看实现: #!usr/bin/env python #encoding:utf-8 ''''' __Author__:沂水寒城 功能:给定一个列表计数指定数字出现的所有次数 ''' def count_num_func(num_list,num): ''''' 计数指定数字 ''' split_list=[] for one in num_list: split_list+=list(str

  • php查找字符串出现次数的方法

    本文实例讲述了php查找字符串出现次数的方法.分享给大家供大家参考.具体方法如下: 在php中查找字符串出现次数的查找可以通过substr_count()函数来实现,下面就来给大家详细介绍这些函数. substr_count($haystack, $needle [,$offset [,$length]]) 其中参数: $haystack表示母字符串,$needl表示要查找的字符 $offset表示查找的起点,$length表示查找的长度,均为可选参数 实例代码如下: 复制代码 代码如下: <?

随机推荐