javascript - 获取 JavaScript 中最后一个斜杠后的字符串值

标签 javascript substring indexof slash

我已经尝试了一个多小时,但还是想不出正确的方法,尽管这可能很简单:

我有这样的东西:foo/bar/test.html

我想使用 jQuery 提取最后一个 / 之后的所有内容。在上面的示例中,输出将是 test.html

我想这可以使用 substrindexOf() 来完成,但我找不到可行的解决方案。

最佳答案

至少三种方式:

一个正则表达式:

var result = /[^/]*$/.exec("foo/bar/test.html")[0];

...在字符串 ($) 的末尾表示“获取不包含斜杠的一系列字符”([^/]*)。然后它通过索引从返回的匹配对象中获取匹配的字符 ([0]);在匹配对象中,第一个条目是整个匹配的字符串。不需要捕获组。

Live example

使用lastIndexOfsubstring:

var str = "foo/bar/test.html";
var n = str.lastIndexOf('/');
var result = str.substring(n + 1);

lastIndexOf做它听起来像做的事情:它找到字符串中字符(好吧,字符串)最后 出现的索引,如果找不到则返回 -1。十有八九你可能想检查返回值 (if (n !== -1)),但在上面,因为我们向它加 1 并调用 substring,所以我们d 最终执行 str.substring(0),它只返回字符串。

使用Array#split

Sudhir 和 Tom Walters 对此进行了报道 herehere ,但只是为了完整性:

var parts = "foo/bar/test.html".split("/");
var result = parts[parts.length - 1]; // Or parts.pop();

split 使用给定的分隔符拆分一个字符串,返回一个数组。

lastIndexOf/substring 解决方案可能是最有效的(尽管在谈论 JavaScript 和性能时总是要小心,因为引擎之间的差异如此之大),但除非您在循环中执行数千次,否则没关系,我会努力使代码清晰。

关于javascript - 获取 JavaScript 中最后一个斜杠后的字符串值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8376525/

相关文章:

javascript - 在函数完成之前返回数组和 Angular JS

javascript - URL 重定向到不受信任的站点

javascript - 如果数字小于 10,则前导零 - 数字 0 的错误

c# - string.IndexOf 搜索全词匹配

java - 在 ArrayList 中查找数组的索引

javascript - 默认选择不显示在下拉列表中

Python 在使用 Usecol 时添加列

c# 使用子字符串和正则表达式编辑大字符串

JavaScript 对象 indexOf,返回父位置?

java - 如何在 java 中使 indexof 不区分大小写