假设我有一个网址:
http://something.com/somethingheretoo
我想得到第三个实例之后是/
什么?
类似的东西indexOf()
可以让我输入我想要的反斜杠实例。
假设我有一个网址:
http://something.com/somethingheretoo
我想得到第三个实例之后是/
什么?
类似的东西indexOf()
可以让我输入我想要的反斜杠实例。
如果您知道它以http://
or开头,只需使用以下单行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 中,您可以通过添加另一个参数来传递您要搜索的字符串,将其作为独立函数。
如果你想坚持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 搜索 " //
",接受 " //
" 和下一个 " /
" 之间的任何内容,并返回一个对象。这个对象有几个属性。属性[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/
在您的情况下,您可以使用该lastIndexOf()
方法获取第三个正斜杠。
这是一种非常酷的处理方式: 如何删除字符串中直到并包括第三个斜杠的所有字符?
我对建议的解决方案的偏好是
var url = "http://blablab/test/page.php";
alert(url.split("/")[3]);
//-> "test"
代替使用indexOf
它可以这样做:
const url = 'http://something.com/somethingheretoo';
const content = new URL(url).pathname.slice(1);