javascript 通过将URL拆分为数组获取域名//...后的URL部分

li9yvcax  于 2023-02-21  发布在  Java
关注(0)|答案(7)|浏览(167)

我已经做了这个代码:

var newURL = $(".list-portfolio a").attr("href"),
    pathArray = newURL.split( '/' ),
    secondLevelLocation = pathArray[0];
console.log(pathArray);

    var pathArray = pathArray[3, 4];

pathArray的值为["http:", "", "www.mikevierwind.nl", "portfolio", "ruimzicht.html"]
我怎样才能得到这个数组的最后两个项。我希望结果是portfolio/ruimzicht.html。

gudnpqoy

gudnpqoy1#

你不需要这些,你只需要window.location.pathname

> window.location.pathname
"/questions/11898626/get-items-of-the-array/11898963"

这将使您在未来拥有类似于“portfolio/2012/ruimzicht.html”的目录,并在不更改代码的情况下将域更改为“www.mikevierwind.???”。
如果您当前不在该域中(并且无法执行上述操作),则可以使用一行程序按自己的方式执行:

> pathArray.slice(-2).join('/')
"portfolio/ruimzicht.html"

但这并不像上面提到的那样经得起未来考验。要让它经得起未来考验,你可以这样做:

> url.split(document.domain)[1].slice(1)
"portfolio/2012/ruimzicht.html"

当您当前不在域中时,通常会在外部URL上执行此操作,因此无法执行window.location.pathname

rm5edbpk

rm5edbpk2#

如果没有固定大小或数量的元素,可以使用数组长度。

var path = array[array.length-2]+'/'+array[array.length-1];

如果你只是想要路径,那么就按照他们在评论中的建议使用普通的JS或jQuery。

//Plain JS
var path = window.location.pathname;
//jQuery
$(location).attr('pathname');
lbsnaicq

lbsnaicq3#

location.href.substr(location.href.indexOf(location.host)+location.host.length)

试试这个!它包含URL参数

mwkjh3gx

mwkjh3gx4#

你可以试试这个

var newURL = $(".list-portfolio a").attr("href"),
    pathArray = newURL.split( '/' ),
    secondLevelLocation = pathArray[0];
console.log(pathArray);

var pathArray = pathArray[3] +'/'+ pathArray[4];
xzabzqsa

xzabzqsa5#

或者可能是这样的

var newURL = $(".list-portfolio a").attr("href"),
pathArray = newURL.split( '/' ),
secondLevelLocation = pathArray.shift();

var pathArray = pathArray.join('/');
whhtz7ly

whhtz7ly6#

试试这个

console.log(new URL(document.URL));

你会得到URL的对象

htrmnn0y

htrmnn0y7#

Ninjagecko给出了优秀的answer-我改进了一点:你不需要使用window前缀,只是

location.pathname

另一种方法是使用at()获取最后两个数组项

[ pathArray.at(-2), pathArray.at(-1) ]
pathArray = ["http:", "", "www.mikevierwind.nl", "portfolio", "ruimzicht.html"];

result = [ pathArray.at(-2), pathArray.at(-1) ]

console.log(result.join`/`);

相关问题