//要求先去两边的空格,然后查找字符串里面空格的个数.
我怎么搞到现在搞不定啊. 求帮助.
<SCRIPT LANGUAGE="JavaScript">
    var str = " a b c d    ";
    var reg = "/\\s/g";
    var count = str.match(reg); 
    alert(count ? count.length : 0)
</SCRIPT>

解决方案 »

  1.   

    去除所有空格:   
      str   =   str.replace(/\s+/g,"");   
        
    去除两头空格:   
      str   =   str.replace(/^\s+|\s+$/g,"");
      

  2.   

    干吗非要正则取个数,split(' ')之后数组长度就是空格个数
      

  3.   

    不要被正则限制了你的思维 先trim 然后处理就好了 
      

  4.   


    var str = " a b c d    ";
    var result = str.replace(/^\s+|\s+$/g, ""); 
    var count = 0;
    alert("去除首尾空格后的字符串为:" + result);
    for(var i = 0, len = result.length; i < len; i++){
    var str = result.charAt(i);
    if(str === " "){
    count++;
    }
    }
    alert("字符串里面的空格个数为:" + count);
      

  5.   


    var str = " a b c d    ";
        var reg = /\s/g;
        var count = str.match(reg); 
        alert(count ? count.length : 0)
      

  6.   

    你的正则写法不对,
    1. \s匹配任意空白字符,,包括制表符...
    2. 正则表达式外边不用引号,否则就变成字符串了...
    如果是精确匹配空格的话:
    <SCRIPT LANGUAGE="JavaScript">
        var str = ' a b c d    ';
        var reg = /\u0020/g;
        var count = str.match(reg); 
        alert(count ? count.length : 0)
    </SCRIPT>移除两端空格(广义空格,包含制表符等)
    <SCRIPT LANGUAGE="JavaScript">
        var str = ' a b c d    ';
        var reg = /\u0020/g;
        var count = str.replace(/^\s*|\s*$/g,'').match(reg); 
        alert(count ? count.length : 0)
    </SCRIPT>
      

  7.   

    var str = " a b c d    ";
    str = str.replace(/^\s*(.*?)\s*$/, "$1");
    alert(str.match(/\s/g).length);
      

  8.   

    trim(str).replace(/^\s+$/g, "").length这个就是空格个数
      

  9.   

    搞错了,这个才是
    trim(str).replace(/^\S+$/g, "").length
    是大写的S
      

  10.   

    刚测试了一下,这个才能通过...
         var str = "  0    0  ";
         alert(str.replace(/^\s+|\s+$/g, "").replace(/\S+/g, "").length);