在JavaScript中使用斜杠之后获取string的值

我已经尝试了一个多小时,并找不到正确的方法来做到这一点,虽然这可能很简单:

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

我想使用jQuery来提取最后一个/ 。 在上面的例子中,输出将是test.html

我想这可以使用substrindexOf()来完成,但我无法find一个工作的解决scheme。

至less有三种方法:

正则expression式:

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

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

现场示例

使用lastIndexOfsubstring

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

lastIndexOf听起来像是这样:它findstring中最后一个字符(井,string)的索引,如果找不到则返回-1。 九次你可能想检查返回值( if (n !== -1) ),但在上面,因为我们加1和调用substring,我们最终会做str.substring(0)这只是返回string。

使用Array#split

Sudhir和Tom Walters在这里和这里覆盖了 这个 ,但只是为了完整:

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

split使用给定的分隔符分割一个string,返回一个数组。

lastIndexOf / substring解决scheme可能是最有效的(尽pipe人们总是要小心地说出关于JavaScript和性能的任何事情,因为引擎的变化是非常激烈的),但是除非循环中做了这么多次,这并不重要,我会努力澄清代码。

你不需要jQuery,有很多方法可以做到这一点,例如:

 var parts = myString.split('/'); var answer = parts[parts.length - 1]; 

myString包含你的string。

 var str = "foo/bar/test.html"; var lastSlash = str.lastIndexOf("/"); alert(str.substring(lastSlash+1)); 

尝试;

 var str =“foo / bar / test.html”;
 var tmp = str.split(“/”);
警报(tmp.pop());
 String path ="AnyDirectory/subFolder/last.htm"; int pos = path.lastIndexOf("/") + 1; path.substring(pos, path.length()-pos) ; 

现在你在pathstring中有last.htm

当我知道string将会相当短,那么我使用下面的一个class轮…(记住要反斜杠)

 // if str is C:\windows\file system\path\picture name.jpg alert( str.split('\\').pop() ); 

警报popup与picture name.jpg

轻重量

 string.substring(start,end) 

哪里

start = Required 。 开始提取的位置。 首字符在索引0处。

end = Optional 。 位置(直到但不包括)结束提取的位置。 如果省略,则提取string的其余部分。

  var string = "var1/var2/var3"; start = string.lastIndexOf('/'); //console.log(start); o/p:- 9 end = string.length; //console.log(end); o/p:- 14 var string_before_last_slash = string.substring(0, start); console.log(string_before_last_slash);//o/p:- var1/var2 var string_after_last_slash = string.substring(start+1, end); console.log(string_after_last_slash);//o/p:- var3 

要么

  var string_after_last_slash = string.substring(start+1); console.log(string_after_last_slash);//o/p:- var3 

jQuery的:

 var afterDot = value.substr(value.lastIndexOf('_') + 1); 

使用Javascript:

 var myString = 'asd/f/df/xc/asd/test.jpg' var parts = myString.split('/'); var answer = parts[parts.length - 1]; console.log(answer); 

replace'_'|| '/'以满足您的需要

码:

 imsrc = pub/media/catalog/product/1/9/1901200_fpx_7.jpg imsrc.substring(imsrc.lastIndexOf("product/")+7) 

输出:

 /1/9/1901200_fpx_7.jpg 
Interesting Posts