获取字符串javascript中的indexOf char

获取字符串javascript中的indexOf char,javascript,string,indexof,Javascript,String,Indexof,如何检查字符串中字符的索引 var str = 'alabama'; alert(str.indexOf('a')); “indexOf”方法似乎只在第一次出现char时有效。 有什么想法吗?您可以编写自己的函数: function charIndexes(string, char) { var i, j, indexes = []; for(i=0,j=string.length;i<j;++i) { if(string.charAt(i) === char)

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

var str = 'alabama';
alert(str.indexOf('a'));
“indexOf”方法似乎只在第一次出现char时有效。
有什么想法吗?

您可以编写自己的函数:

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;
}
函数charIndexes(字符串、字符){

var i,j,indexes=[];对于(i=0,j=string.length;i要查找后续的匹配项,需要向
.indexOf
提供第二个参数,从比上次找到的匹配项高的一个重复开始

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


编辑函数已更新,以允许根据
字符串指定索引中的
。indexOf

您想做什么?查找所有出现的“a”?计算有多少个“a”?我正在尝试获取“a”的索引。事实上,我需要学习该过程,以便使用它来识别字符的位置并进行包装如果你必须用一个div来包装它,为什么不使用
str.replace(/a/g,“a”);
?是的,Chrome中内置类型的原型增加了一个糟糕的性能开销-请注意,这个版本保留了
String.indexOf()的语义
-搜索字符串不必是一个字符。这是真的,但问题只是关于字符。所以字符也可以。Thx,这会很好。o/但我会使用Bennika,因为我觉得使用你的页面时有点慢(我在博客文章中进行搜索。所以这是一个非常大的字符串)。
var str = 'alabama',i=0, ci=[];

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

alert(ci.join(', '));
var str = 'alabama',i=0, ci=[];

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

alert(ci.join(', '));