我正在尝试编写一个函数,该函数返回字符串中特定字符的特定出现的索引。但是,我只能让它成功返回第一个或第二个索引。我的功能如下:
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
感谢您的帮助。
最佳答案
您可以使用split
、slice
和join
来实现您的要求。
逻辑
首先使用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/