【JS字符串】indexOf() – 获取字符串中子字符串第一次出现的索引
在本教程中,您将学习如何使用 JavaScript String indexOf() 方法在字符串中查找子字符串的索引。
String.prototype.indexOf() 返回字符串 (str) 中第一次出现的子字符串 (substr) 的索引:
let index = str.indexOf(substr, [, fromIndex]);
如果 str 不包含 substr,则返回 -1。
fromIndex 是一个可选参数,用于指定搜索开始的索引。 它默认为零 (0),这意味着如果您省略 fromIndex,搜索将从字符串的开头开始。
indexOf() 始终执行区分大小写的搜索。
要查找字符串中最后一次出现的子字符串的索引,可以使用 lastIndexOf() 方法。
JavaScript 字符串 indexOf() 示例
让我们举一些使用 indexOf() 方法的例子。
1) 使用 indexOf() 方法示例
以下示例使用 indexOf() 获取字符串“finding substring in string”中第一次出现的子字符串“str”的索引:
let str = ‘finding substring in string’;
let index = str.indexOf(‘str’);console.log(index); // 11
2) 使用 indexOf() 计算字符串中某个子串的出现次数
以下示例使用 indexOf() 方法来计算字符串 ‘You do not know what you do not know until you know.’ 中子字符串 ‘know’ 的出现次数。
let str = ‘You do not know what you do not know until you know.’;
let substr = ‘know’;let count = 0;
let index = str.indexOf(substr);
while(index !== -1) {
count++;
index = str.indexOf(substr, index + 1);
}console.log(count);
程序怎么运行的:
首先,使用 indexOf() 方法查找 str 中第一次出现的 substr。
然后,使用while循环,从上次找到的位置+1开始,反复寻找str中substr的下一个位置。
3) indexOf() 和区分大小写
indexOf() 区分大小写。 请参阅以下示例:
let str = ‘JS indexOf’;
let substr = ‘js’;
let index = str.indexOf(substr);
console.log(index); // -1
在此示例中,indexOf() 返回 -1,因为字符串 JS IndexOf 不包含子字符串 js 而包含 JS.
要对字符串中子字符串的索引执行不区分大小写的搜索,您可以在使用 indexOf() 方法之前将子字符串和字符串都转换为小写,如下所示:
let str = ‘JS indexOf’;
let substr = ‘js’;let index = str.toLocaleLowerCase().indexOf(substr.toLocaleLowerCase());
console.log(index); // 0
总结
- indexOf() 返回字符串中子字符串第一次出现的索引,如果字符串不包含该子字符串,则返回 -1。
- indexOf() 区分大小写。
英文 | https://www.javascripttutorial.net/
翻译 | 杨小爱