注册 登录
编程论坛 JavaScript论坛

用javascript统计出ababsgabdg中ab的个数

夏小汐 发布于 2012-05-13 15:49, 1125 次点击
这题怎么做啊,求助啊
12 回复
#2
smallmoon5212012-05-13 21:13
用正则表达式是最快的,
如果想自己写的话,用indexOf,逐个找
#3
foktime2012-05-14 16:09
回复 2楼 smallmoon521
哎呀 头像6a+白光啊 苦练中~
#4
smallmoon5212012-05-14 18:00
以下是引用foktime在2012-5-14 16:09:23的发言:

哎呀 头像6a+白光啊 苦练中~


涅哈哈,终于有识货的了,正是白光!

PS: 此截图是鄙人拙作。
#5
smallmoon5212012-05-16 20:05
回复 5楼 foktime
加了
#6
gesongs2012-05-21 08:42
js 是自学的 不太懂 正则表达式
但是下面是我侧过的 自己写的 能满足你的 需求
<script>
    var one="ababsgabdg";
    var two="";
    var there=0;
    for (var i=0;i<one.length;i++)
    {
       if(one.substring(i,i+1)=="a" || one.substring(i,i+1)=="b")
       {
          two+=one.substring(i,i+1)
       }
      
    }
    for (var j=0;j<two.length;j++)
    {
      if(two.substring(j,j+2)=="ab")
      {
        there++;
      }
    }
    alert(there)
    two="";
    there=0;
 </script>
#7
zzgzzg002012-05-25 17:40
正则/ab/g
然后macth
最后length
#8
hibill2012-06-04 08:24
<script type="text/javascript">
var iNum=0;
function count(str,str1)
{
    if(str.indexOf(str1)==-1)
    {
        return alert(iNum);
    }
    str=str.replace(str.substr(str.indexOf(str1),str1.length),'');
    iNum++;
    count(str,str1);
}
count('ad  @3af d@3f@3a;lqw@3  af;ljrtqr','@3');
</script>
#9
wang5822012-06-04 14:14
<script type="text/javascript">
function strSub(strValue,searchStr){  //构造函数

    this.strValue = strValue;            
    this.searchStr = searchStr;
    this.strCount = 0;

    if(typeof strSub.prototype.run != "function"){

        strSub.prototype.run = function(){    //原型
        
            while (this.strValue.indexOf(this.searchStr) != -1)
            {
               
                this.strValue = this.strValue.substring(this.strValue.indexOf(this.searchStr) + 1);
                this.strCount++;
               
            };

            return this.strCount;
        };

    };

};

var ostrSub = new strSub("wwfw","wwf");   //实例化
var ostrSub1 = new strSub("lgjasdlkgjsa      klh5hhkljsk    ljsalglkahhdfsdafsfhhh","h"); //实例化

alert(ostrSub.run());        
alert(ostrSub1.run());
</script>
#10
夏小汐2012-06-05 12:43
回复 10楼 wang582
谢啦谢啦
#11
collinhu2012-06-30 00:19
可以用正则表达式对象RegExp() exec(string)或者字符串对象的match(regExp)方法快递查找字符串
var str="ababsgabdg";
var sum=0;
var test=new RegExp("ab","gi");
while (test.exec(str)!=null)
{
    sum++;
}
alert(sum);
=================
当然也可用匹配
str.macth(/ab/gi)

#12
fenyunsuiyue2012-07-24 07:02
回复 7楼 gesongs
学习一下,谢谢分享
#13
niusanjs2012-08-22 16:35
方法一:利用正则表达式
<script language="javascript" type="text/javascript">
    var str="abdhabdhfabsuhfab";
    var reg=/ab/g;//这是一个正则表达式,ab表示你需要匹配的字符,g表示全局搜索
    var strArray=str.match(reg);
    alert(strArray?strArray.length:0);//弹出来的就是你想要的ab出现的次数
</script>
方法二:利用字符串的截取方法split,这种比较简单
<script language="javascript" type="text/javascript">
    var str="abdhabdhfabsuhfab";
    alert(str.split("ab").length-1);//弹出来的就是你想要的ab出现的次数
</script>
1