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 |
支持 | 支持 | 支持 | 支持 | 支持 | 支持 |