String.prototype.lastIndexOf()
lastIndexOf()
方法是 String
值的方法,它搜索此字符串并返回指定子字符串最后一次出现的索引。它接受一个可选的起始位置,并返回在小于或等于指定数字的索引处的指定子字符串的最后一次出现。
试一试
语法
js
lastIndexOf(searchString)
lastIndexOf(searchString, position)
参数
searchString
-
要搜索的子字符串。所有值都会 强制转换为字符串,因此省略它或传递
undefined
会导致lastIndexOf()
搜索字符串"undefined"
,这很少是你想要的。 position
可选-
该方法返回指定子字符串最后一次出现在小于或等于
position
的位置处的索引,默认值为+Infinity
。如果position
大于调用字符串的长度,则该方法将搜索整个字符串。如果position
小于0
,则行为与0
相同,即该方法仅在索引0
处查找指定子字符串。'hello world hello'.lastIndexOf('world', 4)
返回-1
- 因为,虽然子字符串world
确实出现在索引6
处,但该位置不小于或等于4
。'hello world hello'.lastIndexOf('hello', 99)
返回12
- 因为hello
最后一次出现在小于或等于99
的位置是在位置12
。'hello world hello'.lastIndexOf('hello', 0)
和'hello world hello'.lastIndexOf('hello', -5)
都返回0
- 因为它们都导致该方法仅在索引0
处查找hello
。
返回值
找到的 searchString
最后一次出现的索引,如果未找到,则返回 -1
。
描述
字符串是零索引的:字符串第一个字符的索引为 0
,字符串最后一个字符的索引为字符串长度减 1。
js
"canal".lastIndexOf("a"); // returns 3
"canal".lastIndexOf("a", 2); // returns 1
"canal".lastIndexOf("a", 0); // returns -1
"canal".lastIndexOf("x"); // returns -1
"canal".lastIndexOf("c", -5); // returns 0
"canal".lastIndexOf("c", 0); // returns 0
"canal".lastIndexOf(""); // returns 5
"canal".lastIndexOf("", 2); // returns 2
区分大小写
lastIndexOf()
方法区分大小写。例如,以下表达式返回 -1
js
"Blue Whale, Killer Whale".lastIndexOf("blue"); // returns -1
示例
使用 indexOf() 和 lastIndexOf()
以下示例使用 indexOf()
和 lastIndexOf()
在字符串 "Brave, Brave New World"
中定位值。
js
const anyString = "Brave, Brave New World";
console.log(anyString.indexOf("Brave")); // 0
console.log(anyString.lastIndexOf("Brave")); // 7
规范
规范 |
---|
ECMAScript 语言规范 # sec-string.prototype.lastindexof |
浏览器兼容性
BCD 表仅在浏览器中加载