URLがあるとしましょう:
http://something.com/somethingheretoo
の3番目のインスタンスの後にあるものを取得したい/
ですか?
whichと同等のものを使用すると、必要なindexOf()
バックスラッシュのインスタンスを入力できます。
URLがあるとしましょう:
http://something.com/somethingheretoo
の3番目のインスタンスの後にあるものを取得したい/
ですか?
whichと同等のものを使用すると、必要なindexOf()
バックスラッシュのインスタンスを入力できます。
http://
またはで始まることがわかっている場合は、次のワンライナーhttps://
でその部分をスキップしてください。
var content = aURL.substring(aURL.indexOf('/', 8));
これにより、必要なセグメントに複数のスラッシュがある場合の柔軟性が向上します。
let s = 'http://something.com/somethingheretoo';
parts = s.split('/');
parts.splice(0, 2);
return parts.join('/');
次の関数のようなものを試してみてください。これは、検索文字列 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 に追加したくない場合は、別のパラメーターを追加して検索する文字列を渡すことにより、スタンドアロン関数として使用できます。
もう1つのアプローチは、Javascriptの「分割」機能を使用することです。
var strWord = "me/you/something";
var splittedWord = strWord.split("/");
splittedWord[0]は「私」を返します
splittedWord[1]は「あなた」を返します
splittedWord[2]は「何か」を返します
欲しいようですねpathname
。ブラウザを使用している場合は、a
要素を手元に置いてください...
var _a = document.createElement('a');
...そしてそれがあなたのために構文解析をするようにします。
_a.href = "http://something.com/somethingheretoo";
alert( _a.pathname.slice(1) ); // somethingheretoo
デモ:http: //jsfiddle.net/2qT9c/
あなたが固執したい場合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]
/
これを処理する非常に優れた方法 を次に示します。文字列内の 3 番目のスラッシュまでのすべての文字を削除するにはどうすればよいですか?
提案されたソリューションの私の好みは
var url = "http://blablab/test/page.php";
alert(url.split("/")[3]);
//-> "test"
あなたの場合、lastIndexOf()
メソッドを使用して 3 番目のスラッシュを取得できます。