<script>
var count = 0;
var str = "afifafgoaafda";
str.replace(/a/g, function() { count ++; });
alert(count);
</script>

解决方案 »

  1.   

    <script>
    var str="agygagha"
    r=str.match(/a/g)
    alert(r.length)
    </script>
      

  2.   

    function replaceCallback(strFound,pos,strRaw)
    {
    alert("在"+strRaw+"中\n第"+pos+"字符中[0,length)\n找到"+strFound);
    }
    var str="9bJ47mwi8zchpq9N";
    str.replace(/[0-9]/g,replaceCallback);
      

  3.   

    function replaceCallback(strFound,pos,strRaw)
    {
    var quots=[
    {l:'(',r:")"},
    {l:'[',r:"]"},
    {l:'{',r:"}"}
    ];
    var quot=quots[parseInt(strFound)%quots.length];
    return quot.l+strFound+quot.r;
    }
    var str="9bJ47mwi8zchpq9N";
    alert(str.replace(/[0-9]/g,replaceCallback));
    alert("0123456789".replace(/[0-9]/g,replaceCallback));
    不够帖了。。谁回复以下?
      

  4.   

    <script>
    var str="agygagha"
    r=str.split("a")
    alert(r.length-1)
    </script> 
      

  5.   

    replace中用function要求版本5.5,所以我一般不用
      

  6.   

    var thestr=hi.value;
    function NormalUBB(str)
    {
    if(typeof(str)!="string")str=str+"";
    str=str.replace(/(\[b\])(.*)(\[\/b\])/gi,"<b>$2</b>");
    return str;
    }
    function LostinetUBB(str)
    {
    if(typeof(str)!="string")str=str+"";
    str=str.replace(
    /(\[b\])(.*)(\[\/b\])/gi,
    function(str,pos,raw)
    {
    return LostinetUBB(
    str.replace(/(\[b\])(.*)(\[\/b\])/gi,"<b>$2</b>")
    );
    }
    );
    return str;
    }
    alert(NormalUBB(thestr));
    alert(LostinetUBB(thestr));
      

  7.   

    var thestr="a1[b]a2[b]centerb2[/b]b1[/b]";
    function NormalUBB(str)
    {
    if(typeof(str)!="string")str=str+"";
    str=str.replace(/(\[b\])(.*)(\[\/b\])/gi,"<b>$2</b>");
    return str;
    }
    function LostinetUBB(str)
    {
    if(typeof(str)!="string")str=str+"";
    str=str.replace(
    /(\[b\])(.*)(\[\/b\])/gi,
    function(str,pos,raw)
    {
    return LostinetUBB(
    str.replace(/(\[b\])(.*)(\[\/b\])/gi,"<b>$2</b>")
    );
    }
    );
    return str;
    }
    alert(NormalUBB(thestr));
    alert(LostinetUBB(thestr));
      

  8.   

    IE5.5以下用
    <script>
    var thestr="a1[b]a2[b]centerb2[/b]b1[/b]";
    function qswhUBB(str){
    var reg=/(\[b\])([^[]*)(\[\/b\])/gi,i=0;
    while(str.match(reg))str=str.replace(reg,"<b>$2</b>");
    return str;
    }
    alert(qswhUBB(thestr));
    </script>
      

  9.   

    我的方法是从最外面开始的。
    而你的方法是从里面开始的。
    对于不规范的UBB文本,你的结果和我的结果会不同。
    当然对于常规的概念,你的解析方法比我的好。
    -------
    对于我的方法,这个也是个简单的开始。
    事实上,
    function(str,pos,raw)
    {
    return LostinetUBB(
    str.replace(/(\[b\])(.*)(\[\/b\])/gi,"<b>$2</b>")
    );
    }
    里不应该使用str.replace了。
    如果函数里面能接受到/(\[b\])(.*)(\[\/b\])/gi里的匹配就好了。