我有一个ajax调用,从json我得到这样的URL:
http://pp.somedomain.com/pp/url/245/http%253A%252F%252Fmydomain.com%252Fblog%252F25-03-11%252Fawesome-story-bro%252F%253Fstuff%253D492039402
现在我想解析一下,我只能从中得到我的domain.com路径。所以最终的结果是:
http://mydomain.com/blog/25-03-11/awesome-story-bro/
但我不知道如何用Javascript / jQuery做到这一点。有人可以帮帮我吗?我阅读教程,不知何故,我必须计算/然后以某种方式削减它。
答案 0 :(得分:2)
我认为您的网址无效。 当我尝试使用decodeURIComponent()进行解码时,它会抛出URI格式错误的异常
decodeURIComponent("http%253A%252F%mydomain.com%252Fblog%252F25-03-11%252Fawesome-story-bro%252F%253Fstuff%253D492039402")
答案 1 :(得分:2)
您的html部分已编码两次。您首先需要使用html-unescape调用,然后再使用decodeURIcomponent
。
此外,请注意您的网址仍然不正确,因为您在其中包含以下内容:
%252F%mydomain
请注意 %mydomain
部分?它应该是:
%252F%252Fmydomain
然后您可以使用以下函数调用:
x = "http%253A%252F%252Fmydomain.com%252Fblog%252F25-03-11%252Fawesome-story-bro%252F%253Fstuff%253D492039402"
y = unescape(x) // y = "http%3A%2F%2Fmydomain.com%2Fblog%2F25-03-11%2Fawesome-story-bro%2F%3Fstuff%3D492039402"
z = decodeURIComponent(y) // z = "http://mydomain.com/blog/25-03-11/awesome-story-bro/?stuff=492039402"
答案 2 :(得分:0)
从字符串中解析网址 -
使用 exec
var result = /[^/]*$/.exec(a)[0];
使用 lastIndexOf 和子字符串:
var n = a.lastIndexOf('/');
var result = a.substring(n + 1);
然后,您可以使用decodeURIComponent
-
var my_url = decodeURIComponent(result);
(但似乎字符串是错误的,如@ hjpotter92所述.pl check)