JavaScript 字符串 indexOf()

概述:在本教程中,您将学习如何使用 JavaScript 字符串 indexOf() 方法来查找子字符串在字符串中的索引。

String.prototype.indexOf() 返回字符串 (str) 中子字符串 (substr) 第一次出现的索引。

let index = str.indexOf(substr, [, fromIndex]);Code language: JavaScript (javascript)

如果 str 不包含 substr,则返回 -1。

fromIndex 是一个可选参数,指定搜索开始的索引。默认值为零 (0),这意味着如果您省略 fromIndex,则搜索将从字符串开头开始。

indexOf() 始终执行区分大小写的搜索。

要查找子字符串在字符串中最后一次出现的索引,可以使用 lastIndexOf() 方法。

JavaScript 字符串 indexOf() 实例

让我们看一些使用 indexOf() 方法的实例。

1) 使用 indexOf() 方法的实例

以下示例使用 indexOf() 获取字符串 'finding substring in string' 中子字符串 'str' 第一次出现的索引。

let str = 'finding substring in string';
let index = str.indexOf('str');

console.log(index); // 11Code language: JavaScript (javascript)

2) 使用 indexOf() 统计子字符串在字符串中出现的次数

以下示例使用 indexOf() 方法统计子字符串 'know' 在字符串 'You do not know what you do not know until you know.' 中出现的次数。

let str = 'You do not know what you do not know until you know.';
let substr = 'know';

let count = 0;

let index = str.indexOf(substr);
while(index !== -1) {
    count++;
    index = str.indexOf(substr, index + 1);
}

console.log(count);Code language: JavaScript (javascript)

工作原理

  • 首先,使用 indexOf() 方法查找 substrstr 中的第一次出现。
  • 然后,使用 while 循环从上次找到的位置 + 1 开始,重复查找 substrstr 中的下一个位置。

3) indexOf() 和区分大小写

indexOf() 区分大小写。请看以下示例

let str = 'JS indexOf';
let substr = 'js';

let index = str.indexOf(substr);

console.log(index); // -1Code language: JavaScript (javascript)

在此示例中,indexOf() 返回 -1,因为字符串 JS IndexOf 不包含子字符串 js,而是 JS

要对子字符串在字符串中的索引执行不区分大小写的搜索,可以在使用 indexOf() 方法之前将子字符串和字符串都转换为小写,如下所示

let str = 'JS indexOf';
let substr = 'js';

let index = str.toLocaleLowerCase().indexOf(substr.toLocaleLowerCase());

console.log(index); // 0Code language: JavaScript (javascript)

总结

  • indexOf() 返回子字符串在字符串中第一次出现的索引,如果字符串不包含子字符串,则返回 -1。
  • indexOf() 区分大小写。
本教程对您有帮助吗?