如何使用jQuery解析字符串/ URL

时间:2014-03-25 07:44:33

标签: javascript jquery json url

我有一个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做到这一点。有人可以帮帮我吗?我阅读教程,不知何故,我必须计算/然后以某种方式削减它。

3 个答案:

答案 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);


View Demo


(但似乎字符串是错误的,如@ hjpotter92所述.pl check)