比如有个字符串
str = "AABADFAEDRADFADSFAAAAAAAAFDADFADFAAAA";里面有若干个AA, 有没有一个函数能够返回一个数组, 里面是所有AA的索引呢?js的indexOf()能做到吗?

解决方案 »

  1.   

    indexOf只是索引第一个, 返回第一个符合的索引值. 不会返回你要的一个数组的.
      

  2.   

    indexOf 只能返回第1个值的索引,需要些方法来扩展
      

  3.   


    String.prototype.indexsOf = function(subStr){
    var pos = new Array();
    var str = this; getIndex = function(sub, string, index){
    var i = string.indexOf(sub, index);
    if(i < 0){return false;}
    pos.push(i.toString());
    getIndex(sub, string, i + sub.length);
    } getIndex(subStr, str, 0);
    return pos;
    }里面用到了indexOf的第二个参数, 表示索引开始位置, 可以查一下.
    使用方法
    str.indexsOf("AA");
    返回位置数组[0,17,19...]