JavaScript String indexOf() 方法



JavaScript String indexOf() 方法用于查找原始字符串中指定子字符串首次出现的索引。它返回子字符串的位置,如果子字符串不存在,则返回 -1。例如,“hello”.indexOf(“lo”) 返回 3,而 “hello”.indexOf(“hi”) 返回 -1。

此方法接受名为 position 的可选参数,该参数指定方法在原始字符串中开始搜索指定子字符串的位置。此参数的默认值为 0。例如,“hello”.indexOf(“l”, 2) 返回 2,而 “hello”.indexOf(“l”, 3) 返回 3。

注意 − 此方法区分大小写,它将 “s” 和 “S” 视为不同的值。

语法

以下是 JavaScript String indexOf() 方法的语法 -


 indexOf(searchString, position)

参数

  • searchString − 要搜索的子字符串。
  • position (可选) − 从搜索开始的位置。

返回值

此方法返回找到的 substring 的第一个匹配项的索引。

示例 1

如果我们省略 position 参数,此方法将 position 视为默认值 0,并返回原始字符串 “qikepucom” 中指定子字符串 “ke” 首次出现的索引。


<html>
<head>
<title>JavaScript String indexOf() Method</title>
</head>
<body>
<script>
	 	const str = "qikepucom";
	 	const sub_str = "ke";
	 	document.write("Original string: ", str);
	 	document.write("<br>Sub-string to be searched: ", sub_str);
	 	document.write("<br>An index of search string '", sub_str,"' is: ", str.indexOf(sub_str));
</script>
</body>
</html>

输出

上面的程序返回一个索引 2 来替换 “ke”。

Original string: qikepucom
Sub-string to be searched: ke
An index of search string 'ke' is: 2

示例 2

如果我们将 position 参数值传递为 5,该方法将从原始字符串中的位置 5 开始搜索子字符串。

以下是 JavaScript String indexOf() 方法的另一个示例。在这里,我们使用此方法在原始字符串 “HelloWorld” 中查找起始位置 5 处的子字符串 “o” 的索引。


<html>
<head>
<title>JavaScript String indexOf() Method</title>
</head>
<body>
<script>
	 	const str = "HelloWorld";
	 	const sub_str = "o";
	 	const position = 5;
	 	document.write("Original string: ", str);
	 	document.write("<br>Sub-string to be searched: ", sub_str);
	 	document.write("<br>Position value is: ", position);
	 	document.write("<br>An index of search string '", sub_str,"' is: ", str.indexOf(sub_str, position));
</script>
</body>
</html>

输出

执行上述程序后,在指定位置 5 处为子字符串 'o' 返回一个索引值 '6'。

Original string: HelloWorld
Sub-string to be searched: o
Position value is: 5
An index of search string 'o' is: 6

示例 3

如果在原始字符串中找不到指定的子字符串,则此方法返回 -1。

在下面的示例中,我们尝试在原始字符串 “JavaScript” 中查找子字符串 “Mom” 的索引。


<html>
<head>
<title>JavaScript String indexOf() Method</title>
</head>
<body>
<script>
	 	const str = "JavaScript";
	 	const sub_str = "Mom";
	 	document.write("Original string: ", str);
	 	document.write("<br>Sub-string to be searched: ", sub_str);
	 	let result = str.indexOf(sub_str);
	 	document.write("<br>Method str.indexOf(sub_str) returns: ", result);
	 	if(result == -1){
	 	 	 document.write("<br>Not found...!");
	 	}else{
	 	 	 document.write("<br>Found...!");
	 	}
</script>
</body>
</html>

输出

当找不到子字符串时,上述程序中的 indexOf() 方法返回 -1。

Original string: JavaScript
Sub-string to be searched: Mom
Method str.indexOf(sub_str) returns: -1
Not found...!

示例 4

如果 position 大于调用字符串的长度,则该方法根本不搜索调用字符串,并返回 -1。


<html>
<head>
<title>JavaScript String indexOf() Method</title>
</head>
<body>
<script>
	 	const str = "JavaScript";
	 	const sub_str = "a";
	 	const position = 20;
	 	document.write("Original string: ", str);
	 	document.write("<br>Sub-string to be searched: ", sub_str);
	 	document.write("<br>Position value: ", position);
	 	let result = str.indexOf(sub_str, position);
	 	document.write("<br>Method str.indexOf(sub_str) returns: ", result);
</script>
</body>
</html>

输出

上面的程序返回 -1,对于大于原始字符串长度的较大 position 值。

Original string: JavaScript
Sub-string to be searched: a
Position value: 20
Method str.indexOf(sub_str) returns: -1