String.lastIndexOf() 从后往前查找子串位置
最后更新:2026-10-13
String.lastIndexOf() 从后往前查找子串位置
lastIndexOf 从字符串末尾向前查找子串,返回最后一次出现的起始下标;找不到返回 -1。参数可以是字符串,不支持正则。
| 分类 | 字符串 |
|---|---|
| ES 版本 | ES1(1997) |
📝 语法
字符串.lastIndexOf(查找子串, 起始位置);
⚙️ 参数
| searchString | 要查找的子串,区分大小写。 |
|---|---|
| position | 可选。从此下标向前查找,默认从末尾开始。 |
返回值:最后一次出现的下标;找不到返回 -1。
是否修改原值:否(返回新值)
▶ 示例
编辑下方代码,点击运行,在输出面板查看结果:
运行结果:
15
20
10
-1
💡 提示 取文件名常用 path.slice(path.lastIndexOf("/") + 1)。
⚠️ 警告 需要正则查找用 search;需要全部位置可用循环调用 indexOf。
🌐 浏览器支持
| 浏览器 | |||||
|---|---|---|---|---|---|
| String.lastIndexOf() | ✓ v1 | ✓ v12 | ✓ v1 | ✓ v1 | ✓ v3 |
| 所有现代浏览器均支持 | |||||
🏷️ 相关字符串方法
💡 相关案例
更多实战案例即将上线,敬请期待。
📚 相关教程
❓ 常见问题
QlastIndexOf 和 indexOf 的区别?
AindexOf 从前往后找第一次出现;lastIndexOf 从后往前找最后一次出现。
Q能传正则吗?
A不能,传正则会先被转成字符串(得到 "/abc/" 字面量)。正则查找请用 search。
Q找扩展名怎么写?
Aconst dot = name.lastIndexOf("."); const ext = dot > -1 ? name.slice(dot + 1) : "";