r0s*_*kar 102 javascript substring slash indexof
我已经尝试了一个多小时,无法找到正确的方法来做到这一点,虽然它可能很容易:
我有这样的事情: foo/bar/test.html
我想使用jQuery在最后一个之后提取所有内容/
.在上面的例子中,输出将是test.html
.
我想它可以使用substr
和完成indexOf()
,但我找不到一个有效的解决方案.
T.J*_*der 216
至少有三种方式:
var result = /[^/]*$/.exec("foo/bar/test.html")[0];
Run Code Online (Sandbox Code Playgroud)
...表示" [^/]*
在字符串($
)的末尾"抓取一系列不包含斜杠的字符"().然后它通过索引到它([0]
)中来抓取返回的匹配对象中匹配的字符; 在匹配对象中,第一个条目是整个匹配的字符串.不需要捕获组.
lastIndexOf
和substring
:var str = "foo/bar/test.html";
var n = str.lastIndexOf('/');
var result = str.substring(n + 1);
Run Code Online (Sandbox Code Playgroud)
lastIndexOf
做它听起来像它:它找到字符串中最后一个字符(井,字符串)的索引,如果没有找到则返回-1.十分之九你可能想要检查返回值(if (n !== -1)
),但在上面因为我们为它添加1并调用substring,我们最终会做的str.substring(0)
只是返回字符串.
Array#split
Sudhir和Tom Walters在这里和这里都有这个,但为了完整性:
var parts = "foo/bar/test.html".split("/");
var result = parts[parts.length - 1]; // Or parts.pop();
Run Code Online (Sandbox Code Playgroud)
split
使用给定的分隔符拆分字符串,返回一个数组.
该lastIndexOf
/ substring
解决方案可能是最有效的(尽管人们总是要小心说关于JavaScript和表现什么,因为发动机不同,所以从根本上相互),但除非你是在一个循环中这样做上千次,这不是没关系,我会努力澄清代码.
Tom*_*ers 27
你不需要jQuery,并且有很多方法可以做到这一点,例如:
var parts = myString.split('/');
var answer = parts[parts.length - 1];
Run Code Online (Sandbox Code Playgroud)
myString包含你的字符串.
小智 18
尝试这个:
const url = "files/images/gallery/image.jpg";
console.log(url.split("/").pop());
Run Code Online (Sandbox Code Playgroud)
kas*_*ega 12
var str = "foo/bar/test.html";
var lastSlash = str.lastIndexOf("/");
alert(str.substring(lastSlash+1));
Run Code Online (Sandbox Code Playgroud)
当我知道字符串会很短时,我会使用以下一个衬里...(记住要转义反斜杠)
// if str is C:\windows\file system\path\picture name.jpg
alert( str.split('\\').pop() );
Run Code Online (Sandbox Code Playgroud)
警报弹出 picture name.jpg
归档时间: |
|
查看次数: |
164163 次 |
最近记录: |