在字符串javascript中获取indexOf char

时间:2012-05-08 17:15:44

标签: javascript string indexof

如何检查字符串中字符的索引?

var str = 'alabama';
alert(str.indexOf('a'));

" indexOf"方法似乎只在第一次出现char时起作用。 有什么想法吗?

3 个答案:

答案 0 :(得分:6)

要查找后续发生的事件,您需要向.indexOf提供第二个参数,重复从高于最后一次出现的值开始。

String.prototype.allIndexesOf = function(c, n) {
    var indexes = [];
    n = n || 0;
    while ((n = this.indexOf(c, n)) >= 0) {
        indexes.push(n++);
    }
    return indexes;
}

测试:

> "alabama".allIndexesOf("a")
[0, 2, 4, 6]

编辑功能已更新,允许按fromIndex指定String.indexOf

答案 1 :(得分:3)

您可以编写自己的功能:

function charIndexes(string, char) {
    var i, j, indexes = []; for(i=0,j=string.length;i<j;++i) {
        if(string.charAt(i) === char) {
            indexes.push(i);
        }
    }

    return indexes;
}

答案 2 :(得分:0)

var str = 'alabama',i=0, ci=[];

while((i=str.indexOf('a',i))!=-1)  ci.push(i++);

alert(ci.join(', '));
相关问题