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 参数,此方法将使用默认值 0 作为位置,并返回原始字符串"TutorialsPoint"中指定子字符串"t"最后一次出现的索引。
<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() 方法的另一个示例。在这里,我们使用此方法在原始字符串"HelloWorld"中查找起始位置 5 处的子字符串"o"的索引。
<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

