【问题标题】:How to parse string/URL with jQuery如何使用 jQuery 解析字符串/URL
【发布时间】:2014-05-02 22:08:13
【问题描述】:

我有 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 来做到这一点。任何人都可以帮助我吗?我读了教程,不知何故我必须数 / 然后以某种方式剪掉它。

【问题讨论】:

标签: javascript jquery json url


【解决方案1】:

从字符串中解析url-

使用 exec

 var result = /[^/]*$/.exec(a)[0];

使用 lastIndexOfsubstring

var n = a.lastIndexOf('/');
var result = a.substring(n + 1);

然后你可以使用decodeURIComponent解码url-

var my_url = decodeURIComponent(result);


View Demo


(但似乎@hjpotter92 解释的字符串是错误的。请检查)

【讨论】:

    【解决方案2】:

    您的 html 部分已被编码两次。您首先需要使用 html-unescape 调用,然后再使用 decodeURIcomponent

    另外,请注意您的 URL 仍然不正确,因为其中包含以下内容:

    %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"
    

    【讨论】:

      【解决方案3】:

      我认为您的网址无效。 当我尝试使用 decodeURIComponent() 进行解码时,它会引发 URI 格式错误的异常

      decodeURIComponent("http%253A%252F%mydomain.com%252Fblog%252F25-03-11%252Fawesome-story-bro%252F%253Fstuff%253D492039402")
      

      【讨论】:

      • 嗯,可能是我贴错了。也许我错过了一些角色?我需要检查一下。
      • 好的,修复了第一篇文章中的网址。但解码后仍然看起来像 http%3A%2F%2Fmydomain.com%2Fblog%2F25-03-11%2Fawesome-story-bro%2F%3Fstuff%3D492039402。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-04
      • 1970-01-01
      • 1970-01-01
      • 2019-09-24
      • 2011-08-30
      相关资源
      最近更新 更多