在JavaScript中使用斜杠之后获取string的值
我已经尝试了一个多小时,并找不到正确的方法来做到这一点,虽然这可能很简单:
我有这样的: foo/bar/test.html
我想使用jQuery来提取最后一个/
。 在上面的例子中,输出将是test.html
。
我想这可以使用substr
和indexOf()
来完成,但我无法find一个工作的解决scheme。
至less有三种方法:
正则expression式:
var result = /[^/]*$/.exec("foo/bar/test.html")[0];
…在string( $
)的末尾说“抓住一系列不包含斜线的字符”( [^/]*
)。 然后通过索引( [0]
)从返回的匹配对象中抓取匹配的字符。 在匹配对象中,第一个条目是整个匹配的string。 不需要捕获组。
现场示例
使用lastIndexOf
和substring
:
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