0

对于这个网址

"http://testsite/sites/TestSubSite/objstrat/CultureConnection/Pages/default.aspx"

试图在企业/站点之后提取所有内容。我想"/TestSubSite/objstrat/CultureConnection/Pages/default.aspx"

我可以得到这样的文件名:

var filename = parenturl.substring(parenturl.lastIndexOf("/") + );

但不知道如何从中间提取..

4

4 回答 4

1

对于片段或查询中的lastIndexOf任何 URI 引用,使用将失败,如./http://example.com/foo/bar#/baz/boo


Google Closure 的 Uri 模块这样的库可以让这变得简单。

new goog.Uri(parenturl).getPath()

如果您选择的库不支持 URI,那么http://www.ietf.org/rfc/rfc3986.txt附录 B 建议

var urlRegex = /^(([^:\/?#]+):)?(\/\/([^\/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?/;
var path = decodeURIComponent(urlRegex.exec(parenturl)[5]);

将为您提供路径部分。


/sites/一旦你有了路径,你就可以通过做类似的事情来剥离部分

var pathSuffix = path.replace(/^\/sites\//, '/');
于 2013-02-07T16:46:23.770 回答
1

我喜欢带有 DOM 元素的 Javascript。

var link = document.createElement('a');
link.href = "http://testsite/sites/TestSubSite/objstrat/CultureConnection/Pages/default.aspx";

link.protocol;
link.hostname;
link.port;
link.pathname;
link.search;
link.hash;
link.host;

link.pathname.replace(/^\/sites/,"") // "/TestSubSite/objstrat/CultureConnection/Pages/default.aspx"
于 2013-02-07T19:37:08.117 回答
0

最简单的事情可能是使用 javascript 的 Split() 函数并从结果数组中重建字符串(省略前几项)

    var parenturl = "http://testsite/sites/TestSubSite/objstrat/CultureConnection/Pages/default.aspx";
        var tokens = parenturl.split("/");

    for(var i=0;i<tokens .length;i++)
    {
        console.log(tokens [i]);
    }
于 2013-02-07T16:53:30.230 回答
0

怎么样:

var parenturl = "http://testsite/sites/TestSubSite/objstrat/CultureConnection/Pages/default.aspx";
var filename = parenturl.match(/\/sites(.*)$/)[1];
alert(filename);
于 2013-02-07T16:57:36.543 回答