JavaScript String search() 方法

定义和用法

search() 方法将字符串与正则表达式匹配。

注释:如果搜索值为字符串,则转换为正则表达式。

search() 方法返回第一个匹配项的索引(位置)。

如果未找到匹配项,则 search() 方法返回 -1

提示:search() 方法区分大小写。

另请参阅:

正则表达式教程

正则表达式参考手册

String search() 与 String indexOf() 的区别

search() 不能采用起始位置参数。

indexOf() 方法无法搜索正则表达式。

String search() 与 String match() 的区别

search() 方法返回第一个匹配的位置。

match() 方法返回匹配数组。

实例

例子 1

搜索 "Blue":

let text = "Mr. Blue has a blue house";
let position = text.search("Blue");

亲自试一试

例子 2

搜索 "blue":

let text = "Mr. Blue has a blue house";
let position = text.search("blue");

亲自试一试

例子 3

搜索 /Blue/:

let text = "Mr. Blue has a blue house";
let position = text.search(/Blue/);

亲自试一试

例子 4

搜索 /blue/

let text = "Mr. Blue has a blue house";
let position = text.search(/blue/);

亲自试一试

例子 5

不区分大小写的搜索:

let text = "Mr. Blue has a blue house";
let position = text.search(/blue/i);

亲自试一试

语法

string.search(regexp)

参数

参数 描述
regexp

必需。搜索值。

正则表达式(或将转换为正则表达式的字符串)。

返回值

类型 描述
数字 第一个匹配的位置。如果未匹配,则返回 -1

技术细节

参数 regexp

该参数是要在字符串 string 中检索的 RegExp 对象,该对象具有指定的模式。如果该参数不是 RegExp 对象,则首先将它传递给 RegExp() 构造函数,把它转换成 RegExp 对象。

返回值

string 中第一个与 regexp 相匹配的子串的起始位置。

注释:如果没有找到任何匹配的子串,则返回 -1

说明

search() 方法在字符串 string 字符串中检索与 regexp 相匹配的子串,并且返回第一个匹配子串的第一个字符的位置。如果没有找到任何匹配的子串,则返回 -1

search() 方法不执行全局匹配,它将忽略标志 g。它同时忽略 regexp 的 lastIndex 属性,并且总是从字符串的开始进行检索,这意味着它总是返回 string 的第一个匹配的位置。

正则表达式搜索方法

在 JavaScript 中,正则表达式文本搜索可以用不同的方法完成。

通过将模式作为正则表达式,这些是最常用的方法:

示例 描述
text.match(pattern) 字符串方法 match()
text.search(pattern) 字符串方法 search()
pattern.exec(text) 正则表达式方法 exec()
pattern.test(text) 正则表达式方法 test()

浏览器支持

search() 是 ECMAScript1 (ES1) 特性。

所有浏览器都完全支持 ES1 (JavaScript 1997):

Chrome IE Edge Firefox Safari Opera
Chrome IE Edge Firefox Safari Opera
支持 支持 支持 支持 支持 支持

相关页面

JavaScript 字符串

JavaScript 字符串方法

JavaScript 字符串搜索


http://www.vxiaotou.com