0

この URL について

"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

のように、フラグメントまたはクエリで をURI 参照として使用lastIndexOfすると失敗します。/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

どうですか:

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 に答える
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 に答える