JavaScript 字符串 indexOf()

indexOf() 方法在字符串中返回子字符串第一次出现时的索引。

示例

const message = "JavaScript is not Java";

// returns index of 'v' in first occurrence of 'va' const index = message.indexOf("va");
console.log('index: ' + index); // index: 2

indexOf() 语法

indexOf() 方法的语法是:

str.indexOf(searchValue, fromIndex)

其中,str 是一个字符串。


indexOf() 参数

indexOf() 方法接受以下参数:

  • searchValue - 要在字符串中搜索的值。如果没有明确提供字符串,将搜索“undefined”
  • fromIndex(可选)- 开始搜索的索引。默认为0。如果fromIndex < 0,则从索引0开始搜索。

indexOf() 返回值

  • 如果该值在字符串中至少出现一次,则返回该值在字符串中的第一个索引。
  • 如果该值在字符串中未找到,则返回-1

注意:indexOf() 方法区分大小写。

对于空字符串 searchValue 和小于字符串长度的 fromIndexindexOf 返回的值与 fromIndex 相同。

同样,对于空字符串 searchValue 和大于字符串长度的 fromIndexindexOf 返回字符串的长度。

"Programiz JavaScript".indexOf("", 0); // returns 0
"Programiz JavaScript".indexOf("", 3); // returns 3

// string length here is 20
"Programiz JavaScript".indexOf("", 25); // returns 20
"Programiz JavaScript".indexOf("", 21); // returns 20

示例 1:使用 indexOf() 方法

var str = "JavaScript is the world's most misunderstood programming language.";

// indexOf() returns the first occurance
var index1 = str.indexOf("language");
console.log(index1); // 57 var index2 = str.indexOf("p"); console.log(index2); // 8
// second argument specifies the search's start index var index3 = str.indexOf("p", 9);
console.log(index3); // 45
// indexOf returns -1 if not found var index4 = str.indexOf("Python");
console.log(index4); // -1

输出

57
8
45
-1

示例 2:查找元素的所有出现

function findAllIndex(string, value) {
  indices = [];
var currentIndex = string.indexOf(value);
while (currentIndex != -1) { indices.push(currentIndex);
currentIndex = string.indexOf(value, currentIndex + value.length);
} return indices; } var str = "JavaScript is as related to Java as Carpenter is to Carpet."; var occurance1 = findAllIndex(str, "J"); console.log(occurance1); // [ 0, 28 ] var occurance2 = findAllIndex(str, "Carpet"); console.log(occurance2); // [ 52 ] var occurance3 = findAllIndex(str, "x"); console.log(occurance3); // []

输出

[ 0, 28 ]
[ 52 ]
[]

另请阅读

你觉得这篇文章有帮助吗?

我们的高级学习平台,凭借十多年的经验和数千条反馈创建。

以前所未有的方式学习和提高您的编程技能。

试用 Programiz PRO
  • 交互式课程
  • 证书
  • AI 帮助
  • 2000+ 挑战