跳到主要内容

JavaScript 字符串的lastIndexOf()方法

lastIndexOf() 方法返回给定子字符串在字符串中最后一次出现的索引。

示例

// 定义一个字符串
var str = "Programming";

var substr = "g";

// 查找 str 中 "g" 的最后一次出现
var result = str.lastIndexOf(substr);

console.log(result);

// 输出:10

lastIndexOf() 语法

lastIndexOf() 方法的语法是:

str.lastIndexOf(searchValue, fromIndex);

这里,str 是一个字符串。

lastIndexOf() 参数

lastIndexOf() 方法接受:

  • substr - 要在给定字符串中搜索的值。
  • fromIndex(可选) - 从字符串中反向搜索的起始索引。默认值为 +Infinity

注意:

  • 如果 fromIndex >= string.length,则搜索整个字符串。
  • 如果 fromIndex < 0,则视为与 0 相同。

lastIndexOf() 返回值

lastIndexOf() 方法返回:

  • 如果值在字符串中至少出现一次,则返回该值在字符串中的最后索引。
  • 如果没有明确提供字符串,则返回 fromIndex。

注意: 如果在给定字符串中找不到子字符串,则方法返回 -1

示例 1:使用 lastIndexOf() 方法

// 定义一个字符串
var str = "Programming";

var substr = "m";

// 查找 str 中 "m" 的最后一次出现
var result = str.lastIndexOf(substr);

console.log(result);

输出

7;

在上述示例中,我们定义了一个名为 str 的字符串。变量 substr 包含 "m",这是给定字符串的子字符串。

lastIndexOf() 方法定位 substr 最后一次出现的索引。由于字符串的索引从 0 开始,str.lastIndexOf(substr) 返回值 7

示例 2:带有两个参数的 lastIndexOf()

// 定义一个字符串
var str = "Programming";

// 定义一个子字符串 'substr',它包含字符 'g'
var substr = "g";

var fromIndex = 6;

// 在 lastIndexOf() 中传递第二个参数 'fromIndex'
var result = str.lastIndexOf(substr, fromIndex);

console.log(result);

输出

3;

在上述示例中,我们传递了 fromIndex 作为第二个参数。因此,lastIndexOf() 方法从 fromIndex 向后搜索子字符串。

str.lastIndexOf(substr, fromIndex) 从 fromIndex 向后搜索 "g",并定位 "g" 的最后一次出现,即索引 3

示例 3:未找到子字符串时

var str = "I love JavaScript";

// 传递一个在给定字符串中不存在的子字符串
var result = str.lastIndexOf("Python");

console.log(result);

输出

-1;

这里,我们传递了 "Python" 作为 substr。由于在 "I love JavaScript" 字符串中找不到 "Python",该方法返回 -1

示例 4:lastIndexOf() 区分大小写的搜索

lastIndexOf() 方法区分大小写。例如:

var str = "I love JavaScript";

// lastIndexOf() 以 "JavaScript" 作为 substr
var result1 = str.lastIndexOf("JavaScript");

console.log(result1);

// lastIndexOf() 以 "javaScript" 作为 substr
var result2 = str.lastIndexOf("javaScript");

console.log(result2);

输出

7 - 1;

这里,lastIndexOf() 方法区分大小写,因此它将 "JavaScript""javaScript" 视为两个不同的 substr。

该方法为 "JavaScript" 返回索引值 7,而对于 "javaScript" 返回 -1

推荐阅读: