JavaScript 字符串 lastIndexOf() 方法

JavaScript lastIndexOf() 语法

lastIndexOf() 是 JavaScript 字符串的一个方法,它用于返回指定子串在字符串中 “最后一次” 出现的下标。如果指定子串不存在,则返回 -1。

lastIndexOf() 方法是 “从右向左” 进行搜索,因此它返回的是从右边数的第一次的下标,也就是从左边数的最后一次的下标。

语法:

str.lastIndexOf(subStr, start)

说明:

lastIndexOf() 方法可以接收以下 2 个参数。

  • subStr(可选):表示想要查找的子串。
  • start(可选):表示查找的开始下标(从右边开始),如果 start 省略,则默认为 str.length,表示搜索整个字符串。

其中,数组也有 lastIndexOf() 方法,另请参阅:JavaScript 数组 lastIndexOf() 方法

注意:

  • lastIndexOf() 方法会严格区分大小写。
  • 与数组不同,字符串的 lastIndexOf 不支持负数下标。如果 start 小于 0,则会被视为 0。
  • indexOf() 方法是 “从左到右” 进行搜索,而 lastIndexOf() 方法是 “从右到左” 进行搜索。

JavaScript lastIndexOf() 摘要

属于 JavaScript 查找字符串
使用频率
修改原字符串
官方文档 查看
MDN 查看

JavaScript lastIndexOf() 示例

接下来,我们通过几个简单的例子来讲解一下 JavaScript lastIndexOf() 方法是如何使用的。

示例 1:lastIndexOf() 基本用法

const str = "红绿蓝红";

console.log(str.lastIndexOf("红"));
console.log(str.lastIndexOf("黄"));

运行结果如下。

3
-1

分析:

由于 str 包含了两个 "红",但 str.lastIndexOf("红") 只会返回最后一个 "红" 的下标,也就是 3。

示例 2:lastIndexOf() 设置查找的开始下标

const str = "绿叶红叶黄叶绿叶";

console.log(str.lastIndexOf("绿叶", 0));
console.log(str.lastIndexOf("绿叶", 2));
console.log(str.lastIndexOf("绿叶", 7));

运行结果如下。

0
0
6

分析:

str.lastIndexOf("绿叶", 0) 表示从下标 0 的位置(即第 1 个元素)开始搜索,而 str.lastIndexOf("绿叶", 2) 表示从下标 2 的位置(即第 3 个元素)开始搜索。

indexOf() 与 lastIndexOf()

字符串的 indexOf() 和 lastIndexOf() 这两个方法非常相似,它们之间的区别如下。

  • indexOf() 是 “从左到右” 进行搜索,而 lastIndexOf() 是 “从右到左” 进行搜索。
  • indexOf() 返回的是指定子串 “第一次” 出现的下标,而 lastIndexOf() 返回的是指定元子串 “最后一次” 出现的下标(从右边开始数是第一个)。

示例 3:indexOf() vs lastIndexOf()

const str = "绿叶红叶黄叶绿叶";
console.log(str.indexOf("绿叶"));
console.log(str.lastIndexOf("绿叶"));

运行结果如下。

0
6

上一篇: indexOf()

下一篇: search()

给站长反馈

绿叶网正在不断完善中,小伙伴们如果发现任何问题,还望多多给站长反馈,谢谢!

邮箱:lvyenet@vip.qq.com

「绿叶网」服务号
绿叶网服务号放大
关注服务号,微信也能看教程。
绿叶网服务号