Movatterモバイル変換


[0]ホーム

URL:


  1. 面向开发者的 Web 技术
  2. JavaScript
  3. JavaScript 参考
  4. JavaScript 标准内置对象
  5. String
  6. String.prototype.search()

此页面由社区从英文翻译而来。了解更多并加入 MDN Web Docs 社区。

View in EnglishAlways switch to English

String.prototype.search()

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since ⁨2015年7月⁩.

search() 方法用于在String 对象中执行正则表达式的搜索,寻找匹配项。

尝试一下

const paragraph = "I think Ruth's dog is cuter than your dog!";// Anything not a word character, whitespace or apostropheconst regex = /[^\w\s']/g;console.log(paragraph.search(regex));// Expected output: 41console.log(paragraph[paragraph.search(regex)]);// Expected output: "!"

语法

js
search(regexp)

参数

regexp

一个正则表达式对象,或者具有Symbol.search 方法的任意对象。

如果regexp 不是RegExp 对象,并且不具有Symbol.search 方法,则会使用new RegExp(regexp) 将其隐式转换为RegExp

返回值

如果匹配成功,则返回正则表达式在字符串中首次匹配的索引;否则,返回-1

描述

String.prototype.search() 方法的实现非常简单——它只是将该字符串作为调用实参拥有的Symbol.search 方法的第一个参数。实际的实现来自于RegExp.prototype[Symbol.search]()

regexpg 标志对search() 方法的结果没有影响,搜索总是以正则表达式的lastIndex 为 0 进行。有关search() 方法行为的更多信息,请参阅RegExp.prototype[Symbol.search]()

当你想知道字符串中是否存在某个模式,并且想知道它在字符串中的索引时,可以使用search() 方法。

示例

使用 search()

下面的示例中用两个不同的正则表达式对同一个字符串执行搜索匹配,得到一个成功匹配(正数返回值)和一个失败匹配(-1)。

js
const str = "hey JudE";const re = /[A-Z]/;const reDot = /[.]/;console.log(str.search(re)); // 返回 4,这是第一个大写字母“J”的索引console.log(str.search(reDot)); // 返回 -1,找不到点符号“.”

规范

Specification
ECMAScript® 2026 Language Specification
# sec-string.prototype.search

浏览器兼容性

参见

Help improve MDN

Learn how to contribute

This page was last modified on byMDN contributors.


[8]ページ先頭

©2009-2025 Movatter.jp