回首页
◎ 设为首页  
◎ 收藏本站  
◎ 联系我们  
首页 理财故事 专家点金 精打细算 我家财经 参考案例 生活 黄金 银行 保险 外汇 股票 基金 债券 期货 彩票 社保
论坛 创业人生 答疑解惑 商机无限 名人之路 科技致富 职场 收藏 古玩 字画 邮品 赏石 珠宝 旅游 汽车 科普 法规
网址 家居装饰 时尚丽人 家庭健康 大众饮食 电脑网络 数码 建站 娱乐 笑料 图片 文学 文摘 游戏 轶事 影音 链接
    首 页  理财之道  激情创业  银行保险  证券投资  收藏博览  消费指南  政策法规  休闲娱乐  科技之家  网站社区  
  当前位置:首 页 >> 科技之家 >> 建站宝典 >> 如果用JS得到字符串中出现次数最多的字母
热 门 排 行
asp代码-注册登陆代码
中国明月网络提供8M永..
用透明Flash装扮好QQ..
HTML代码大全推荐
如何使网站顺利登录百度推荐
精彩教程:LOGO的制作..推荐
小区宽带主要常见故障..
网页制作学习入门教程..
用Flash制作一个网站..
SQL Server SQL语句导..
最 近 更 新
网页版权的正确写法
高性能表现的div+css..
DIV+CSS技术入门
SqlServer2005对现有..
常见的80004005错误及..
推广网站增加外链的方法
站长应掌握的九条平面..
搜索优化经验:百度降..
站长如何设计和优化网..
站长应如何定位自己的..
相 关 链 接
理财 基金 债券
金市 汇市 保险
收藏 期货 银行
     
最 新 推 荐
向马云学习如何做网站..推荐
做内容有价值的网站才..推荐
在网页中插入视频的方..推荐
在Access数据库中使用..推荐
网页小知识:注册/登..推荐
精彩教程:LOGO的制作..推荐
搜索引擎优化:关键词..推荐
网站设计:谈谈网页的..推荐
Flash中调用XML程序实..推荐
什么形式的网站是更有..推荐
站 内 搜 索
关键词

搜索方式

搜索范围

精确匹配
如果用JS得到字符串中出现次数最多的字母

来源:居家理财网 等级:默认等级
发布于2007-09-11 21:28 被读46次 【字体: 】〖 访问论坛

网上有这样一道题目:
Quote:
一个字符串String=“adadfdfseffserfefsefseetsdg”,找出里面出现次数最多的字母和出现的次数。
经典的解答思路为:取出字符串的第一个字符(首字母),利用的字符串的replace方法将符合正则表达式(第一个字符)替代为空,此字母出现的次数为原始的字符串长度减去替代后的字符串长度。循环迭代找出长度最长的字母。
<script type="text/javascript">
//<![CDATA[

var str ="adadfdfseffserfefsefseeffffftsdg"; //命名一个变量放置给出的字符串
var maxLength = 0; //命名一个变量放置字母出现的最高次数并初始化为0
var result = ''; //命名一个变量放置结果输入

while( str != '' ){ //循环迭代开始,并判断字符串是否为空
  oldStr = str; //将原始的字符串变量赋值给新变量
  getStr = str.substr(0,1); //用字符串的substr的方法得到第一个字符(首字母)
  eval("str = str.replace(/"+getStr+"/g,'')"); //详细如补充

  if( oldStr.length-str.length > maxLength ) { //判断原始的字符串的长度减去替代后字符串长度是否大于之前出现的最大的字符串长度
 maxLength = oldStr.length-str.length; //两字符串长度相减得到最大的字符串长度
 result = getStr + "=" + maxLength //返回最大的字符串结果(字母、出现次数)
 }
}

alert(result) //弹出结果

//]]>
</script>

补充:
eval("str = str.replace(/"+getStr+"/g,'')");

可能很多人想这样写str = str.replace(/getStr/g,''),可结果却是会出错的。为什么呢,在这句中正则表达式匹配的是getStr字符串,而不是getStr指向的首字母。通过eval方法可以避免(首先getStr得到指向的首字母,用字符串连接"str = str.replace(/"+getStr+"/g,'')",最后在eval中执行这段代码,即:先解释Javascript代码,然后再执行它)。

PS: 小马 指出eval性能不好,容易出错,而且可读性不好。建议将eval("str = str.replace(/"+getStr+"/g,'')")改为:
str = str.replace(new RegExp(getStr,"g"),"")
 
 
转载


(您想天天免费看到如此及时全面的资讯吗?请点击此处将居家理财网加入您的收藏夹就可以了。点击此处将居家理财网设为您的上网首页。)
  居家理财网-- www.jj86.com

※非常感谢您阅读本页!※内容仅供参考,不构成任何行为依据※!暂无相关专题

上一篇:无内容div占据空间的触发条件和解决方法
下一篇:CSS制作网页实例:用CSS控制li标记样式

共有评论 0 条 网友评分 0分 查看全部

【发表评论】 评分:1分 2分 3分 4分 5分


 版权申明
1、 发表文章作品必须依法行事;所有文章及相关评论仅代表作者本人观点,与本站立场无关。
2、 本站刊登该文章只为交流之用,无任何营利目的,如有侵犯或不妥,请直接与我们联系。
3、 原创文章或评论版权归本站和作者共有;转载的文章及其它作品,版权归原发表单位及作者所有。
4、 由于来自于网上部分文章无法查证原作者和出处,如署名或出处有误,请直接与我们联系。
5、 如果转载,务必注明作者与出处;从本站转载请标注:文章来源:居家理财网
论坛内容更精彩,欢迎参与讨论交流!
网址大全 网上投稿 广告服务 服务条款 人才招聘 笑话大全 设为首页 加入收藏夹 友情链接 网站建设
本站永久域名:☆www.jj86.com Rss 2.0
      Copyright © 2004-2005 居家理财网 All Right Reserved.吉ICP备05003931号
 推荐↑ 关闭╳
 推荐↑ 关闭╳