【JavaScript 教程】第五章 字符串07— indexOf():获取字符串中子字符串第一次出现的索引

共 2020字,需浏览 5分钟

 ·

2021-12-24 19:28

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

译文 | 杨小爱


在上节,我们学习了如何使用 JavaScript split() 方法将字符串拆分为子字符串数组,错过小伙伴可以点击文章《【JavaScript 教程】第五章 字符串06— split():将字符串拆分为子字符串数组 》进行学习。

那么,在今天的教程中,我们将一起来学习如何使用 JavaScript 的indexOf()方法来查找字符串中子字符串的索引。

String.prototype.indexOf() 返回字符串 (str) 中第一次出现子字符串 (substr) 的索引:
let index = str.indexOf(substr, [, fromIndex]);

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

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

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

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

JavaScript String 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 don't know what you don't 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() 区分大小写。


如果你还想学习更多的内容,请点击下文链接进行学习。

【JavaScript 教程】第五章 字符串03— trim()、trimStart() 和 trimEnd()

【JavaScript 教程】第五章 字符串02— 字符串类型

【JavaScript 教程】第五章 字符串01— JavaScript 字符串

【JavaScript 教程】第四章 程序流程08— JavaScript continue 语句




学习更多技能

请点击下方公众号

浏览 25
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报