-4

JavaScriptで記述されたURLパーサーが必要です。これは以下のように機能します。

あなたがこのURLを持っていると仮定しますhttp://www.somedomain.com/a/b/c

その後、関数parseURL(n)は次のように機能します。

var paramA = parseURL(1) // Sets paramA to "a"
var paramB = parseURL(2) // Sets paramB to "b"
var paramC = parseURL(3) // Sets paramC to "c"
var paramD = parseURL(4) // Sets paramD to null (because the path does not ripple down to d)

また、このURLを渡した場合http://www.somedomain.com/a/b/c/(URLの最後にバックスラッシュを追加したことに注意してください)、関数は引き続き同じように機能することに注意してください。

この関数は、任意の長さの任意のURLで機能する必要があるため、次のような長いURLで機能する必要がありますhttp://www.somedomain.com/a/b/c/d/e/。このURLの場合。parseURL(5)「e」を返す必要があるところまで行くことができますが、parseURL(6)またはparseURL(7)両方ともnullを返します。

ありがとう。

4

3 に答える 3

2
function parseURL(i) {
   var t = document.location.pathname.split('/');
   return i < t.length ? t[i] : null;
}

VisioNが指摘しているように、終了に対処するには/、このバージョンの方が適しています。

function parseURL(i) {
   var t = document.location.pathname.replace(/\/+$/, "").split('/');
   return i < t.length ? t[i] : null;
}
于 2013-01-17T17:59:37.850 に答える
1

これは、URL文字列を受け取り、配列を返す関数です。ホスト名がインデックス0であるという追加で、説明した方法でインデックスが作成されます。それが必要かどうか、または現在のURLを解析するdystroyが何を書き込んだかはわかりません。

したがって、parseURL("http://www.somedomain.com/a/b/c/") 次のような配列が得られます

urlParts[0] = "www.somedomain.com"
urlParts[1] = "a"
urlParts[2] = "b"
urlParts[3] = "c"

function parseURL(url){
   //strip off the http://
  if(url.indexOf("http://") != -1){
   url = url.slice(7);
  }

   //split the url into sections
   var urlParts = url.split("/");

   return urlParts;
}
于 2013-01-17T18:20:31.993 に答える
0

URI解析に非常に優れたJavaScriptライブラリであるURI.js(より具体的にはセグメントメソッド)を使用できます。

于 2013-01-17T18:00:36.437 に答える