JavaScript String search() 方法在原始字符串中搜索字符串或正则表达式,并返回第一个匹配项的 index(position)。如果未找到匹配项,则返回 -1。
此方法区分大小写,这意味着它将字符串 “Hi” 和 “hi” 视为两个不同的值。但是,您可以通过在正则表达式中使用 /i 标志来使 search() 方法不区分大小写。
注意 − 正则表达式的 'g'(global) 标志对 search() 方法结果没有影响,并且搜索总是像正则表达式 lastIndex 为 0 一样进行。
语法
以下是 JavaScript String search() 方法的语法 -
search(regexp)
参数
- regexp − 一个 regexp(正则表达式)对象。
返回值
此方法返回 regexp 和给定字符串之间的第一个匹配项的 index(position)。
示例 1
如果在 regexp 和原始字符串之间找到匹配项,则此方法返回第一个匹配项的索引。
在下面的程序中,我们使用 JavaScript 字符串 search() 方法来匹配和检索原始字符串 “Welcome to qikepu com” 中正则表达式 “/com/i” 的索引(或位置)。
<html>
<head>
<title>JavaScript String search() Method</title>
</head>
<body>
<script>
const str = "Welcome to qikepu com";
document.write("Original String: ", str);
let regexp = /com/i;
document.write("<br>regexp: ", regexp);
document.write("<br>The sub-string '", regexp, "' found at position ",str.search(regexp));
</script>
</body>
</html>
输出
上面的程序将字符串 “com” 的 index(position) 返回为 21。
Original String: Welcome to qikepu com
regexp: /com/i
The sub-string '/com/i' found at position 3
regexp: /com/i
The sub-string '/com/i' found at position 3
示例 2
如果在原始字符串中找不到指定的 regexp,则 search() 方法返回 -1。
以下是 JavaScript String search() 方法的另一个示例。在此示例中,我们使用此方法匹配原始字符串 “Hello World” 中的 regexp '/Hi/'。
<html>
<head>
<title>JavaScript String search() Method</title>
</head>
<body>
<script>
const str = "Hello World";
document.write("Original String: ", str);
let regexp = /Hi/;
document.write("<br>regexp: ", regexp);
document.write("<br>The regexp '", regexp, "' found at position ",str.search(regexp));
</script>
</body>
</html>
输出
执行上述操作后,它将返回 -1。
Original String: Hello World
regexp: /Hi/
The regexp '/Hi/' found at position -1
regexp: /Hi/
The regexp '/Hi/' found at position -1
示例 3
让我们在条件语句中使用方法 result 来检查正则表达式 “/[^\w\P']/;” 和原始字符串 “qikepu com” 之间是否匹配。
<html>
<head>
<title>JavaScript String search() Method</title>
</head>
<body>
<script>
const str = "qikepu com";
document.write("Original String: ", str);
let regexp = /[^\w\P']/;
document.write("<br>regexp: ", regexp);
let index = str.search(regexp);
document.write("<br>Method returns: ", index, "<br>");
if(index !=-1){
document.write("Match found");
}
else{
document.write("Not found");
}
</script>
</body>
</html>
输出
以下是上述程序的输出 -
Original String: qikepu com
regexp: /[^\w\P']/
Method returns: 6
Match found
regexp: /[^\w\P']/
Method returns: 6
Match found

