JavaScript indexOf() - 如何获取特定索引
假设我有一个 URL:
http://something.com/somethingheretoo
并且我想获取 /
第三个实例之后的内容?
与 indexOf()
类似的东西可以让我输入我想要的反斜杠实例。
Let's say I have a URL:
http://something.com/somethingheretoo
and I want to get what's after the 3rd instance of /
?
something like the equivalent of indexOf()
which lets me input which instance of the backslash I want.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(9)
如果您知道它以
http://
或https://
开头,只需使用此 one-liner 跳过该部分:这给出如果您想要的段中有多个斜杠,您会更加灵活。
If you know it starts with
http://
orhttps://
, just skip past that part with this one-liner:This gives you more flexibility if there are multiple slashes in that segment you want.
尝试类似下面的函数,它将返回搜索字符串 s 第 n 次出现的索引,如果有 n-1 或更少的匹配项,则返回 -1。
当然,如果您不想将该函数添加到 String.prototype 中,您可以通过添加另一个参数来传入要搜索的字符串,将其作为独立函数。
Try something like the following function, which will return the index of the nth occurrence of the search string s, or -1 if there are n-1 or fewer matches.
Of course if you don't want to add the function to String.prototype you can have it as a stand-alone function by adding another parameter to pass in the string you want to search in.
如果您想坚持使用
indexOf
:如果您想获取给定 URL 的路径,您还可以使用 RE:
此 RE 搜索“
//
”,接受“//
”和下一个“/
”之间的任何内容,并返回一个对象。该对象有几个属性。 property[1]
包含第三个/
之后的子字符串。If you want to stick to
indexOf
:If you want to get the path of that given URL, you can also use a RE:
This RE searches for "
//
", accepts anything between "//
" and the next "/
", and returns an object. This object has several properties. propery[1]
contains the substring after the third/
.另一种方法是使用 Javascript“split”函数:
splittedWord[0] 将返回“me”
splittedWord[1] 将返回“you”
splittedWord[2] 将返回“something”
Another approach is to use the Javascript "split" function:
splittedWord[0] would return "me"
splittedWord[1] would return "you"
splittedWord[2] would return "something"
听起来您想要
路径名
。如果您使用的是浏览器,请随身携带a
元素......并让它为您进行解析。
演示: http://jsfiddle.net/2qT9c/
It sounds like you want the
pathname
. If you're in a browser, keep ana
element handy......and let it do the parsing for you.
DEMO: http://jsfiddle.net/2qT9c/
在您的情况下,您可以使用
lastIndexOf()
方法来获取第三个正斜杠。In your case, you could use the
lastIndexOf()
method to get the 3rd forward slash.这是处理这个问题的一个非常酷的方法:
如何删除字符串中直到并包括第三个斜杠的所有字符?
我对建议的解决方案的偏好是
Here's a very cool way of handling this:
How can I remove all characters up to and including the 3rd slash in a string?
My preference of the proposed solutions is
除了使用
indexOf
之外,还可以通过以下方式执行此操作:Inestead of using
indexOf
it is possible to do this this way: