【JS字符串】indexOf() – 获取字符串中子字符串第一次出现的索引

JavaScript字符串1年前 (2023)更新 admin
2,535 0

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

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

let index = str.indexOf(substr, [, fromIndex]);

如果 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); // 11

2) 使用 indexOf() 计算字符串中某个子串的出现次数

以下示例使用 indexOf() 方法来计算字符串 ‘You do not know what you do not know until you know.’ 中子字符串 ‘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);

程序怎么运行的:

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

3) indexOf() 和区分大小写

indexOf() 区分大小写。 请参阅以下示例:

let str = ‘JS indexOf’;

let substr = ‘js’;

let index = str.indexOf(substr);

console.log(index); // -1

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

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

let str = ‘JS indexOf’;
let substr = ‘js’;

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

console.log(index); // 0

总结

  • indexOf() 返回字符串中子字符串第一次出现的索引,如果字符串不包含该子字符串,则返回 -1。
  • indexOf() 区分大小写。

 

英文 | https://www.javascripttutorial.net/

翻译 | 杨小爱

© 版权声明

相关文章

暂无评论

暂无评论...