[英]Get last folder name from URL path , getJSON Api , in javascript
[英]Get first and last folder from an url
在 Chrome 扩展程序中,我有一个变量,它等于当前选项卡的 url,例如currentUrl = tabs[0].url;
. 它得到一个 url 像http://www.example.com/folder-1/folder-2/folder-3/index.html
。
我想从这个 url 中获取/folder/-1
和/folder-3/
。
试过currentPath = currentUrl.substring(0, currentUrl.lastIndexOf("/"));
,但通过这种方式我只得到整个路径( http://www.example.com/folder1/folder2/folder3
)
const arr = "http://www.example.com/folder-1/folder-2/folder-3/index.html".split("/");
然后arr[3]
会给你 folder-1 和arr[arr.length - 2]
会给你 folder-3
一种可能的方法
splittedPath = ("http://www.example.com/folder1/folder2/folder3/index.html").split("/");
folder1 = splittedPath[3];
folderLast = splittedPath[splittedPath.length-2];
让我们测试更多的案例:
function getFirstAndLastFrom( URL ){
const a = document.createElement("a");
a.href = URL;
let pathname = a.pathname.split("/");
pathname.shift(); // Filter out first entry
pathname.pop(); // Filter out last entry
const first = pathname.length > 0 ? pathname[0] : null; // Do we have a first element?
const last = pathname.length > 1 ? pathname[pathname.length-1] : null; // Do we have a last element?
return { first, last };
}
const URL1 = "http://www.example.com/folder-1/folder-2/folder-3/index.html";
const URL2 = "http://example.com/folder-1/folder-2/folder-3/";
const URL3 = "http://www.example.com";
const URL4 = "http://subdomain.example.com/folder-1/folder-2/image.jpg";
const URL5 = "http://www.example.com/folder-1/image.jpg";
const URL6 = "http://www.google.com/";
{
// Test case #1
let { first, last } = getFirstAndLastFrom( URL1 );
console.log( URL1, first, last );
}
{
// Test case #2
let { first, last } = getFirstAndLastFrom( URL2 );
console.log( URL2, first, last );
}
{
// Test case #3
let { first, last } = getFirstAndLastFrom( URL3 );
console.log( URL3, first, last );
}
{
// Test case #4
let { first, last } = getFirstAndLastFrom( URL4 );
console.log( URL4, first, last );
}
{
// Test case #5
let { first, last } = getFirstAndLastFrom( URL5 );
console.log( URL5, first, last );
}
{
// Test case #6
let { first, last } = getFirstAndLastFrom( URL6 );
console.log( URL6, first, last );
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.