在字符串javascript中获取indexOf char

dar*_*ong 0 javascript string indexof

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

var str = 'alabama';
alert(str.indexOf('a'));
Run Code Online (Sandbox Code Playgroud)

"indexOf"方法似乎只在第一次出现char时起作用.有任何想法吗?

Aln*_*tak 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;
}
Run Code Online (Sandbox Code Playgroud)

测试:

> "alabama".allIndexesOf("a")
[0, 2, 4, 6]
Run Code Online (Sandbox Code Playgroud)

EDIT功能已更新,允许指定a fromIndex,per String.indexOf.