Javascript indexOf一个特定的字符实例

时间:2015-02-07 02:36:31

标签: javascript regex

一个简单的问题,谷歌很难有效,所以道歉!

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

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

我想使用Javascript创建一个子字符串,返回" HELP"字符串的一部分。我能想到的最简单的方法是获取第5和第6 /的索引并在其周围创建一个子字符串,但我找不到如何执行此操作的文档。

和想法?

1 个答案:

答案 0 :(得分:0)

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"
相关问题