2

プログラミングはまったく新しいので、ばかげた質問をお許しください。私はこのURLを持っていますhttp://www.blahblah.com/some/thing/blah ..

ここで、3番目の「/」の後に表示される文字列が必要です。つまり「/ some /thing」だけです。URLはページごとに異なりますが、プロトコルとホスト名は同じであるため、逆方向から移動したくありません。 ..Javascriptを使用して「/some/thing」を抽出する方法はありますか..助けに感謝します..ありがとう!!

4

5 に答える 5

3
var part = string.split('/')[2]

またはより複雑:

var string = "/a/b/c/d/e/d"
var arr1 = string.split('/')
var arr2 = []
for (i in  arr1)
{
  if (arr1[i].length > 0)
     arr2.push(arr1[i])
}
var part = arr2[2]
于 2012-06-15T01:34:19.613 に答える
2

string.splitメソッドを使用する: http ://www.w3schools.com/jsref/jsref_split.asp

var str = "www.blah.com/blah/blah/thing/blah.php";
var arrayOfString = str.split("/");
alert(arrayOfString[2]); //coming back to do regex/substring for you

楽しんで!:)

ちなみに...もしあなたがウェブ開発に不慣れなら、www.w3schools.comは私にとって非常に良かったです:)

したがって、編集に応答するには、次のようなことを行う必要があります。

上記をすでに仮定します:

alert(arrayOfString.slice(3).join("/"));

ここで実際のニーズに基づいて修正しました。しかし、私が言ったように、http://www.w3schools.comをチェックしてください。それは本当に私にいくつかの良い基本を教えてくれました。

コメントの失敗ケースを修正するには、分割/スライス/結合の前にこれを行います。

if (str.substring(0,1) == "/"){ str = str.substring(1);}

于 2012-06-15T01:34:40.173 に答える
1

ここでは単純な正規表現を使用します。

3番目の「/」のにあるものを取得する1つの方法は、その前のすべてのものと一緒に捨てるだけです。

基本的な考え方:

"/a/b/c/d/e/f".replace(/.*?\/.*?\/s.*?\//, "")
// -> "c/d/e/f"

繰り返しを減らすための代替案#1:

"/a/b/c/d/e/f".replace(/(?:.*?\/){3}/, "")     

代替案#2、入力に改行を含めることができる場合:

"/a/b/c/d/e/f".replace(/(?:[^\/]*\/){3}/, "")

*?修飾子は「貪欲にならない」という意味なので、を.スキップしないで/ください。負の文字クラスの場合は、[^\/]一致することはないため、必要ありません/

もちろん、これは「あまり一般的ではない」形式で記述できます。これは、実際の目的はURIのプロトコル/ドメイン部分を削除することだけであるためです(/'の数は観察された関係にすぎません)。

"http://foo/a/b/c/d/e/f".replace(/https?:\/\/[^\/]*\/?/i, "")
// -> "a/b/c/d/e/f"

最後\/?その後にあるので、「http:// foo」の場合は「」を返し、それが何らかの奇妙な理由で使用された場合iに一致することに注意してください(もちろん完全にオプションです)。HTTP://

"HTTPS://foo".replace(/https?:\/\/[^\/]*\/?/i, "")
// -> ""

ハッピーコーディング!


注:上記の正規表現はすべて、質問で述べられているように、3日以降にコンテンツを抽出します。結果に3番目を含める/には、少し変更する必要があります。また、XYの質問をしないようにすることも役立ちます。/

于 2012-06-15T01:47:18.270 に答える
0
var str = 'http://www.blahblah.com/some/thing/blah'
var afterThirdSlash = str.split('/').slice(3).join('/')

は、すべてのsplit文字で分割された文字列である配列を返します/。はslice、4番目の要素(配列はゼロベースであるため)から配列の一部を選択します。これは、3番目のスラッシュの後の部分に対応するためです。joinを再挿入することにより、これらの要素を元に戻します/。これはあなたが望んでいたことですか?

于 2012-06-15T01:48:07.953 に答える
0

URLが「http://www.blahblah.com/」で始まることがわかっている場合は、url.substring(24)を使用してみませんか?

于 2012-06-15T02:06:06.187 に答える