Javascript索引字符的特定实例

Javascript indexOf a specific instance of a character

本文关键字:实例 索引 字符 Javascript      更新时间:2023-09-26

一个简单的问题很难有效地用谷歌搜索,对此深表歉意!

我有一个字符串中的URL,如下所示:

 var url = https://foo.com/give/me/HELP/9835'

我想使用Javascript创建一个子字符串,返回字符串的"HELP"部分。我能想到的最简单的方法是获得第5个和第6个/的索引,并围绕它创建一个子字符串,但我找不到关于如何做到这一点的文档。

想法呢?

String.prototype.indexOffromIndex作为其第二个参数-您可以简单地找到前四个出现,然后从该索引中搜索:

function findNthOccurrenceOf(search, n, string) {
  var i = 0, j = 0, l = string.length;
  while (j++ < n) {
    i = string.indexOf(search, i) + 1;
    if (i === 0) { i = -1; break; }
    if (i >= l) break;
  }
  return i > 0 && i < l ? i - 1 : -1;
}

然而,对于这样的场景来说,这有点过头了。您也可以通过分隔符分割字符串,并在索引N:处获得值

> var splitArray = 'https://foo.com/give/me/HELP/9835'.split('/')
["https:", "", "foo.com", "give", "me", "HELP", "9835"]
> splitArray.length > 4 ? splitArray[5] : "MISSING"
"HELP"

或者,如果期望值总是采用某种格式,则使用正则表达式:

> var search = /'/(HELP)'//.exec(url);
["/HELP/", "HELP"]
> search ? search[1] : "MISSING"
"HELP"