String.prototype.search() - JavaScript 编辑
search()
方法执行正则表达式和 String
对象之间的一个搜索匹配。
The source for this interactive example is stored in a GitHub repository. If you'd like to contribute to the interactive examples project, please clone https://github.com/mdn/interactive-examples and send us a pull request.
语法
str.search(regexp)
参数
regexp
- 一个
正则表达式(regular expression)
对象 - 如果传入一个非正则表达式对象
regexp
,则会使用new RegExp(regexp)
隐式地将其转换为正则表达式对象。
返回值
如果匹配成功,则 search()
返回正则表达式在字符串中首次匹配项的索引;否则,返回 -1
。
描述
当你想要知道字符串中是否存在某个模式(pattern)时可使用 search()
,类似于正则表达式的 test()
方法。当要了解更多匹配信息时,可使用 match()
(但会更慢一些),该方法类似于正则表达式的 exec()
方法。
示例
例子:使用 search()
下面的例子中用两个不同的正则表达式对同一个字符串执行搜索匹配,得到一个成功匹配(正数返回值)和一个失败匹配(-1)。
var str = "hey JudE";
var re = /[A-Z]/g;
var re2 = /[.]/g;
console.log(str.search(re)); // returns 4, which is the index of the first capital letter "J"
console.log(str.search(re2)); // returns -1 cannot find '.' dot punctuation
规范
Specification |
---|
ECMAScript (ECMA-262) String.prototype.search |
浏览器兼容性
BCD tables only load in the browser
The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out https://github.com/mdn/browser-compat-data and send us a pull request.
Gecko 注意事项
- 在 Gecko 8.0 及之前的版本,
search()
的实现有问题:在调用该方法时,若不传递参数或者参数为undefined
,该方法将不会匹配空字符串,而是匹配字符串 "undefined"。这个问题已被修复,现在,"a".search()
和"a".search(undefined)
都能正确返回 0。 - Starting with Gecko 39 (Firefox 39 / Thunderbird 39 / SeaMonkey 2.36), the non-standard
flags
argument is deprecated and throws a console warning (bug 1142351). - Starting with Gecko 47 (Firefox 47 / Thunderbird 47 / SeaMonkey 2.44), the non-standard
flags
argument is no longer supported in non-release builds and will soon be removed entirely (bug 1245801). - Starting with Gecko 49 (Firefox 49 / Thunderbird 49 / SeaMonkey 2.46), the non-standard
flags
argument is no longer supported (bug 1108382).
参见
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论