http://community.csdn.net/Expert/TopicView3.asp?id=5527563
解决方案 »
- 看看这js代码,帮忙改一下
- 如何点击一个按钮以后把DIV放入指定的TD
- 求助解析JQ源码“for ( ; cur; cur = cur[dir] )”意思?
- var WshShell=new ActiveXObject("WScript.Shell")用法疑惑
- 换行的区别,简单的问题
- javascript来实现日期格式
- javascript 日期格式转换
- 关于<s:select></s:select>的获取text的问题
- FF下marquee函数执行不了吗
- 响应表单中超链接的onClick()的处理函数中如何获得表单其他元素的内容
- 简单问题,form里面的元素怎么调用函数
- 简单问题,但是不会了onunload的事情
----------------------------
上面的连接http://community.csdn.net/Expert/TopicView3.asp?id=5527563
完全可以啊
<script>
//回复人:JK_10000(JK) ( ) 信誉:121 2007-5-15 12:49:42 得分:1
//?
//用最基本的思路有什么不好的:function mm(str)
{
var charArray=str.split("");
var lengthMap=new Array();
for(var i=charArray.length-1;i>-1;i--)
{
(lengthMap[charArray[i]]++) || (lengthMap[charArray[i]]=1);
}
var rs="";
for(var i in lengthMap)
{
rs+="字符:"+i+" ;字数:"+lengthMap[i]+"\n";
} alert(rs);
}var str="abcdefsfasdfsdfasdad";
mm(str);</script>
中文还是英文?
如果是中文,还是很麻烦的,
如果是英文,是否是单词?这样也是不简单的!
codeworker999() 的例子数据量太小了!
{
var ds=new Date();
var reg=/\b[a-zA-Z]+\b|[\u4e00-\u9fa5]/g;
var lengthMap=new Array();//arguments//function(){alert(arguments.length+"\n"+arguments[0]+"\n"+arguments[1]+"\n"+arguments[2]+"\n"+arguments[3]+"\n"+arguments[4]+"\n");})//
str=str.replace(reg,function(){(lengthMap[arguments[0]]++) || (lengthMap[arguments[0]]=1);});//
var rs="";
for(var i in lengthMap)
{
rs+="字符:"+i+" ;字数:"+lengthMap[i]+"\n";
}
alert(new Date()-ds+"ms");
alert(rs);
return lengthMap;
}
mm(s);
for(var i=0;i<12;i++)s+=s;
function mmm(str)
{
var ds=new Date();
var reg=/(\b[a-zA-Z]+\b)|[\u4e00-\u9fa5]/g;
var lengthMap=new Array();
var matchAr=str.match(reg);
if(matchAr==null)return;
var l=matchAr.length
for(var i=0;i< l;i++){(lengthMap[matchAr[i]]++) || (lengthMap[matchAr[i]]=1);}
var rs="";
for(var i in lengthMap)
{
rs+="字符:"+i+" ;字数:"+lengthMap[i]+"\n";
}
alert(new Date()-ds+"ms");
alert(rs);
return lengthMap;
}
mmm(s);
提供的算法改造后应该能满足LZ的要求(记录总结过程来输出),不过我还是觉得楼主可能自己对要求都不是很明确。
<script>
function ReadFile(path,format)
{
try
{
var fso,f,fs,ftxt;
fso= new ActiveXObject("Scripting.FileSystemObject");
f = fso.GetFile(path);
fs= f.OpenAsTextStream(1,format);
ftxt=fs.ReadAll();
fs.close();
return(ftxt);
}catch(e){alert("Error:\nFilePath="+path+"\n"+e.message);return null};
}
function mm(str)
{ var lengthMap=new Array();
if(!str)return lengthMap;
var reg=/(\b[a-zA-Z]+\b)|([\u4e00-\u9fa5])/g;
var matchAr=str.match(reg);
if(matchAr==null)return;
var l=matchAr.length
for(var i=0;i< l;i++){(lengthMap[matchAr[i]]++) || (lengthMap[matchAr[i]]=1);}
for(var i in lengthMap){if(lengthMap[i]<=1)delete lengthMap[i];}
return lengthMap;
}function check()
{
var format=-2;
var formatar=document.getElementsByName("redformat");
for(var i=0; i< formatar.length;i++){if(formatar[i].checked){format=formatar[i].value;break;}}
var ar=mm(ReadFile(filepath.value,format));
var rs="";re=/^[a-zA-Z]+$/
for(x in ar)
{
if(re.test(x))
rs+="单词"+"="+x+" 重复数="+ar[x]+"\n";
else rs+="中文"+"="+x+" 重复数="+ar[x]+"\n";
}
rstext.value=rs;
}</script>
<body>
<FIELDSET style="width:500; border : 1px solid #ff9900;text-align:left;COLOR:#004444;FONT-SIZE:
12px;font-family: Verdana;padding:5px;"><legend>读取方式</legend>
<INPUT type=radio name="redformat" value="-2" CHECKED>使用系统默认值打开文件<br>
<INPUT type=radio name="redformat" value="-1">以 Unicode 方式打开文件<br>
<INPUT type=radio name="redformat" value="0">以 ASCII 方式打开文件
</FIELDSET><br><br>
<input type=file id=filepath style="width:400" /> <button onclick="check()" value="">CHECK</button><br>
<textarea id=rstext style="font-family:宋体;width:500;height:400"></textarea>
</body>
</html>
var s = "The following example uses the XMLDocument and XMLNode classes to parse and format an XML document. Rather than loading an external XML file, the example uses the top-level XML class to create an XML document, then parses it. ";var list = new Array();
var keys = new Array();for (var i=0; i< s.length; i++)
{
if (typeof(list[s.substr(i, 1)]) == "undefined")
{
keys[keys.length] = s.substr(i, 1);
list[s.substr(i, 1)] = 1;
}
else
{
list[s.substr(i, 1)] ++;
}
}document.write(s);
document.write("<br>");
for (var i = 0; i< keys.length; i++)
{
document.write(keys[i]);
document.write(" - ");
document.write(list[keys[i]]);
document.write("<br>");
}
</script>