javascript - 获取字符串中第 n 次出现的索引

标签 javascript

我正在尝试编写一个函数,该函数返回字符串中特定字符的特定出现的索引。但是,我只能让它成功返回第一个或第二个索引。我的功能如下:

function getIndex(str,char,n) {
    return str.indexOf(char, str.indexOf(char) + n-1);
}

输入这些测试仅适用于前 2 个:

getIndex('https://www.example.example2.co.uk','.',2) // successfully returns 19
getIndex('https://www.example.example2.co.uk','.',1) // successfully returns 11
getIndex('https://www.example.example2.co.uk','.',3) // unsuccessfully returns 19

有人知道这如何适用于 2 个以上的实例吗?我如何使用它的一个示例是获得以下内容:

var str = 'https://www.example.example2.co.uk';
str.substring(31); // returns .uk
str.substring(28, 31); // returns .co

感谢您的帮助。

最佳答案

您可以使用splitslicejoin来实现您的要求。

逻辑

首先使用char分割字符串,然后使用slice将分割值连接到第n次出现的位置。然后只需使用 char 连接即可。它的长度将是你的答案。

检查下面。

function getIndex(str, char, n) {
  return str.split(char).slice(0, n).join(char).length;
}

console.log(getIndex('https://www.example.example2.co.uk', '.', 2)) // returns 19
console.log(getIndex('https://www.example.example2.co.uk', '.', 1)) // returns 11
console.log(getIndex('https://www.example.example2.co.uk', '.', 3)) // returns 28

关于javascript - 获取字符串中第 n 次出现的索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53669835/

相关文章:

javascript - 使用 Maven(或其他构建工具)创建 Web2.0 应用程序

javascript - 将行添加到表的开头 - JavaScript - jQuery

javascript - 为什么 javascript 数组会被键值填充

javascript - jquery结合类似的代码

javascript - 在 mongo 中插入文档后根据条件发送电子邮件

javascript - RxJS Debounce 优先级

javascript - 实现类似于slack主页的下划线打字效果

javascript - 以随机顺序动态地将div添加到另一个div中

javascript - (My)SQL 上的正则表达式创建语句

javascript - 将 nodejs/express 应用程序中的 json 文件加载到 d3