获取 JavaScript 中最后一个斜杠后面的字符串的值
2022-08-30 02:18:22
我已经尝试了一个多小时,但无法找出正确的方法,尽管这可能很容易:
我有这样的东西:foo/bar/test.html
我想使用jQuery在最后一个之后提取所有内容。在上面的示例中,输出将为 。/
test.html
我想可以使用 和 来完成,但我找不到有效的解决方案。substr
indexOf()
我已经尝试了一个多小时,但无法找出正确的方法,尽管这可能很容易:
我有这样的东西:foo/bar/test.html
我想使用jQuery在最后一个之后提取所有内容。在上面的示例中,输出将为 。/
test.html
我想可以使用 和 来完成,但我找不到有效的解决方案。substr
indexOf()
至少三种方式:
var result = /[^/]*$/.exec("foo/bar/test.html")[0];
...它在字符串()的末尾显示“抓取不包含斜杠的一系列字符”()。然后,它通过索引从返回的匹配对象中获取匹配的字符();在匹配对象中,第一个条目是整个匹配字符串。无需捕获组。[^/]*
$
[0]
lastIndexOf
substring
var str = "foo/bar/test.html";
var n = str.lastIndexOf('/');
var result = str.substring(n + 1);
lastIndexOf
做它听起来像它所做的事情:它查找字符串中最后一次出现的字符(好吧,字符串)的索引,如果未找到,则返回 -1。十次中有九次你可能想要检查该返回值(),但是在上面,由于我们向其添加1并调用子字符串,因此我们最终会只返回字符串。if (n !== -1)
str.substring(0)
Array#split
Sudhir和Tom Walters在这里和这里都涵盖了这一点,但只是为了完整起见:
var parts = "foo/bar/test.html".split("/");
var result = parts[parts.length - 1]; // Or parts.pop();
split
使用给定的分隔符拆分字符串,返回数组。
/ 解决方案可能是最有效的(尽管人们总是必须小心地谈论JavaScript和性能,因为引擎彼此之间差异如此之大),但除非你在循环中这样做数千次,否则这并不重要,我会努力使代码清晰。lastIndexOf
substring
试试这个:
const url = "files/images/gallery/image.jpg";
console.log(url.split("/").pop());