如何获得匹配chracters的indexOf

时间:2015-05-27 07:58:15

标签: javascript indexof

我希望得到indexOf所有正在出现的字符。

例如,我有一个变量a

var a = "aabaaababaa";

我希望获得indexOf

中所有字符的a

我试过了:

for(i = 0; i < a.length ;i++){
   var len = a.indexOf(a);
   console.log(len);
}

但它仅为第一个字符返回indexOf

4 个答案:

答案 0 :(得分:3)

你可以像这样做一个循环,索引将包含所有索引。

         wb.Close();
         app.Quit();

         System.Diagnostics.Process[] process = System.Diagnostics.Process.GetProcessesByName("Excel");
         foreach (System.Diagnostics.Process p in process)
         {
             if (!string.IsNullOrEmpty(p.ProcessName) && p.StartTime.AddSeconds(+10) > DateTime.Now)
             {
                 try
                 {
                     p.Kill();
                 }
                 catch { }
             }
         }

修改:http://jsfiddle.net/lyncee/b65qo5bb/

答案 1 :(得分:2)

查看indexOfspecification linkMDN link)的第二个参数。第二个参数是开始查找的索引。因此,使用一个循环中的值加一,作为下一次搜索的起点。另外,查找字符串 a,而不是在第一个参数处使用变量a(例如,将a放在引号中):

var a = "aabaaababaa";
var index = -1;
while ((index = a.indexOf('a', index + 1)) != -1) {
  snippet.log(index);
}
<!-- Script provides the `snippet` object, see http://meta.stackexchange.com/a/242144/134069 -->
<script src="http://tjcrowder.github.io/simple-snippets-console/snippet.js"></script>

如果您查找更长的字符串,取决于您是否要在后续循环中匹配 字符串中的,您可以每次添加1(如上所述)或添加您的长度正在寻找。

答案 2 :(得分:1)

使用var len = a.indexOf(a);你正在寻找变量的索引,所以在这种情况下它总是返回0,因为你正在寻找这个变量中var的第一个索引。

如果你有类似的东西:var c =&#34; dfaabaaababaa&#34;,你使用var len = c.indexOf(a);它会返回2。

所以,你必须明星寻找其他索引,如:var len = a.indexOf(a,2)(在这种情况下,它会返回-1,因为没有巧合)或你必须寻找它另一个变量,包含您要查找的变量。

另一个可能的错误(我不知道你想要哪个结果),就是你想要寻找角色&#39; a&#39;。在这种情况下,您需要:     var len = [];     for(i = 0; i      len.push(a.indexOf(&#39; a&#39;,i));     }

答案 3 :(得分:0)

你可以做到

    for(i = 0; i < a.length ;i++){
       var len = a.indexOf(a[i], i);
       console.log(len);
    }

a是一个数组。你必须做[i]访问一个字符