我有以下示例网址:http://example.com/this/is/the/end/
我需要在最后两个/
最后/
之后可能会有字符,但它总是在我需要的最后两个/
之间。
这就是我正在尝试的,我认为它非常接近,但它只返回结束的 d
如何提取完整的结尾?
的Javascript
var str = 'http://example.com/this/is/the/end/';
var string = str.substring(str.lastIndexOf("/")-1,str.lastIndexOf("/"));
答案 0 :(得分:4)
使用lastIndexOf
从索引开始作为第二个参数来提取两个斜杠之间的文本。
var str = 'http://example.com/this/is/the/end/';
var lastIndex = str.lastIndexOf('/');
var string = str.substring(str.lastIndexOf("/", lastIndex - 1) + 1, lastIndex);
// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ : Get the last `/` index by starting search from `lastIndex - 1` index.
console.log(string);
您还可以使用字符串和数组函数,如下所示。
var str = 'http://example.com/this/is/the/end/';
var string = str.split('/').slice(-2)[0];
console.log(string);
此外,可以使用正则表达式。
var str = 'http://example.com/this/is/the/end/';
var string = str.match(/\/(\w+)\/[^\/]*?$/)[1];
console.log(string);
答案 1 :(得分:3)
这是使用正则表达式的好地方:
var str = 'http://example.com/this/is/the/end/';
var re = /\/([^\/]*)\/[^\/]*$/;
// \/ - look for /
// ([^\/]*) - capture zero or more characters that aren't a /
// \/ - look for last /
// [^\/]* - look for more chars that aren't /
// $ - match the end of the string
var last = re.exec(str)[1];
console.log(last); //end
答案 2 :(得分:2)
您可以简单地拆分和切片
'http://example.com/this/is/the/end/'.split('/').slice(-2)[0]