9

URLがあるとしましょう:

http://something.com/somethingheretoo

の3番目のインスタンスの後にあるものを取得したい/ですか?

whichと同等のものを使用すると、必要なindexOf()バックスラッシュのインスタンスを入力できます。

4

9 に答える 9

8

http://またはで始まることがわかっている場合は、次のワンライナーhttps://でその部分をスキップしてください。

var content = aURL.substring(aURL.indexOf('/', 8));

これにより、必要なセグメントに複数のスラッシュがある場合の柔軟性が向上します。

于 2011-09-27T13:52:39.583 に答える
4
let s = 'http://something.com/somethingheretoo';
parts = s.split('/');
parts.splice(0, 2);
return parts.join('/');
于 2011-09-27T13:53:11.733 に答える
2

次の関数のようなものを試してみてください。これは、検索文字列 s の n 番目の出現のインデックスを返すか、n-1 以下の一致がある場合は -1 を返します。

String.prototype.nthIndexOf = function(s, n) {
  var i = -1;
  while(n-- > 0 && -1 != (i = this.indexOf(s, i+1)));
  return i;
}

var str = "some string to test";

alert(str.nthIndexOf("t", 3)); // 15
alert(str.nthIndexOf("t", 7)); // -1
alert(str.nthIndexOf("z", 4)); // -1

var sub = str.substr(str.nthIndexOf("t",3)); // "test"

もちろん、関数を String.prototype に追加したくない場合は、別のパラメーターを追加して検索する文字列を渡すことにより、スタンドアロン関数として使用できます。

于 2011-09-27T14:30:06.803 に答える
1

もう1つのアプローチは、Javascriptの「分割」機能を使用することです。

var strWord = "me/you/something";
var splittedWord = strWord.split("/");

splittedWord[0]は「私」を返します

splittedWord[1]は「あなた」を返します

splittedWord[2]は「何か」を返します

于 2011-09-27T13:54:34.030 に答える
1

欲しいようですねpathname。ブラウザを使用している場合は、a要素を手元に置いてください...

var _a = document.createElement('a');

...そしてそれがあなたのために構文解析をするようにします。

_a.href = "http://something.com/somethingheretoo";

alert( _a.pathname.slice(1) );  // somethingheretoo

デモ:http: //jsfiddle.net/2qT9c/

于 2011-09-27T14:10:42.717 に答える
1

あなたが固執したい場合indexOf

var string = "http://something/sth1/sth2/sth3/"
var lastIndex = string.indexOf("/", lastIndex);
lastIndex = string.indexOf("/", lastIndex);
lastIndex = string.indexOf("/", lastIndex);
string = string.substr(lastIndex);

その特定の URL のパスを取得したい場合は、RE を使用することもできます。

string = string.match(/\/\/[^\/]+\/(.+)?/)[1];

この RE は " " を検索し、 " " と次の " " の//間のすべてを受け入れ、オブジェクトを返します。このオブジェクトにはいくつかのプロパティがあります。プロパティには、3 番目の の後に部分文字列が含まれます。///[1]/

于 2011-09-27T13:52:07.260 に答える
0

これを処理する非常に優れた方法 を次に示します。文字列内の 3 番目のスラッシュまでのすべての文字を削除するにはどうすればよいですか?

提案されたソリューションの私の好みは

var url = "http://blablab/test/page.php";
alert(url.split("/")[3]);
//-> "test"
于 2013-04-22T08:41:17.283 に答える
0

あなたの場合、lastIndexOf()メソッドを使用して 3 番目のスラッシュを取得できます。

于 2011-09-27T13:52:26.490 に答える