JavaScript 字符串 lastIndexOf() 方法



JavaScript 字符串 lastIndexOf() 方法用于查找指定子字符串在原始字符串中最后一次出现的索引。它返回子字符串的位置,如果子字符串不存在则返回 -1。例如,“hello”.lastIndexOf("ll") 返回 2,而 “hello”.lastIndexOf("hi") 返回 -1。

此方法接受一个名为 position 的可选参数,该参数指定方法从原始字符串中的哪个位置开始搜索指定的子字符串。此参数的默认值为 0。例如,“hello”.lastIndexOf("l", 2) 返回 2,而 “hello”.lastIndexOf("l", 3) 返回 3。

注意 - 此方法区分大小写,它将“a”和“A”视为不同的值。

语法

以下是 JavaScript 字符串 lastIndexOf() 方法的语法:

lastIndexOf(searchString, position)

参数

  • searchString - 要搜索的子字符串。
  • position (可选) - 从哪个位置开始搜索。

返回值

此方法返回找到的子字符串最后一次出现的索引。

示例 1

如果我们省略 position 参数,此方法将为 position 考虑默认值 0,并返回指定子字符串“t”在原始字符串“TutorialsPoint”中最后一次出现的索引。

<html>
<head>
<title>JavaScript String lastIndexOf() Method</title>
</head>
<body>
<script>
   const str = "TutorialsPoint";
   const sub_str = "t";
   document.write("Original string: ", str);
   document.write("<br>Sub-string to be searched: ", sub_str);
   document.write("<br>An index of search string '", sub_str,"' is: ", str.lastIndexOf(sub_str));
</script>
</body>
</html>

输出

上述程序返回子字符串“t”的索引为 13。

Original string: TutorialsPoint
Sub-string to be searched: t
An index of search string 't' is: 13

示例 2

如果我们将 position 参数值设置为 5,则该方法将从原始字符串中的位置 5 开始搜索子字符串。

以下是 JavaScript 字符串 lastIndexOf() 方法的另一个示例。在这里,我们使用此方法来查找子字符串“o”在原始字符串“HelloWorld”中起始位置为 5 的索引。

<html>
<head>
<title>JavaScript String lastIndexOf() Method</title>
</head>
<body>
<script>
   const str = "HelloWorld";
   const sub_str = "o";
   const position = 5;
   document.write("Original string: ", str);
   document.write("<br>Sub-string to be searched: ", sub_str);
   document.write("<br>Position value is: ", position);
   document.write("<br>An index of search string '", sub_str,"' is: ", str.lastIndexOf(sub_str, position));
</script>
</body>
</html>

输出

执行上述程序后,它将返回在指定位置 5 处子字符串“o”的索引值为“4”。

Original string: HelloWorld
Sub-string to be searched: o
Position value is: 5
An index of search string 'o' is: 4

示例 3

如果在原始字符串中找不到指定的子字符串,此方法将返回 -1

在下面的示例中,我们尝试在原始字符串“JavaScript”中查找子字符串“Mom”的索引。

<html>
<head>
<title>JavaScript String lastIndexOf() Method</title>
</head>
<body>
<script>
   const str = "JavaScript";
   const sub_str = "Mom";
   document.write("Original string: ", str);
   document.write("<br>Sub-string to be searched: ", sub_str);
   let result = str.lastIndexOf(sub_str);
   document.write("<br>Method str.lastIndexOf(sub_str) returns: ", result);
   if(result == -1){
      document.write("<br>Not found...!");
   } else{
      document.write("<br>Found...!");
   }
</script>
</body>
</html>

输出

上述程序中的 lastIndexOf() 方法在找不到子字符串时返回 -1

Original string: JavaScript
Sub-string to be searched: Mom
Method str.lastIndexOf(sub_str) returns: -1
Not found...!

示例 4

让我们通过执行以下程序来了解 indexOf()lastIndexOf() 方法的区别。

<html>
<head>
<title>JavaScript String lastIndexOf() Method</title>
</head>
<body>
<script>
   const str = "JavaScript";
   const sub_str = "a";
   const position = 20;
   document.write("Original string: ", str);
   document.write("<br>Sub-string to be searched: ", sub_str);
   document.write("<br>Position value: ", position);
   let result = str.lastIndexOf(sub_str, position);
   document.write("<br>Method str.lastIndexOf(sub_str) returns: ", result);
</script>
</body>
</html>

输出

对于相同的子字符串,indexOf() 和 lastIndexOf() 方法返回不同的索引值,如下所示:

Original string: JavaScript
Sub-string to be searched: a
Position value: 20
Method str.lastIndexOf(sub_str) returns: 3
广告