Get to know MDN better
このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docs コミュニティーについてもっと知り、仲間になるにはこちらから。
This feature is well established and works across many devices and browser versions. It’s been available across browsers since 2016年9月.
[Symbol.search]() は RegExp インスタンスのメソッドで、 String.prototype.search がどのように動作するのかを指定します。
検索対象の文字列 (String) です。
正規表現で指定された文字列が最初に一致したインデックスの値、または一致する文字列が見つからなかった場合は -1 を返します。
このメソッドは、 String.prototype.search() の内部で呼び出されます。たとえば、次の 2 つの例は同じ結果を返します。
このメソッドは Symbol.split や [Symbol.matchAll]() とは異なり、正規表現をコピーしません。しかし、[Symbol.match]() や [Symbol.replace]() とは異なり、実行を始めるときには lastIndex を 0 に設定し、終了するときには前回の値に戻すので、一般的に副作用を避けることができます。つまり、このメソッドでは g フラグは効果がなく、 lastIndex が 0 でない場合でも常に文字列の最初に一致した部分を返します。これは、粘着的正規表現が常に文字列の先頭を厳密に検索することも意味しています。
[Symbol.search]() は常に正規表現の exec() を 1 回だけ呼び出し、結果の index プロパティを返すか、結果が null の場合は -1 を返します。
このメソッドは、RegExp サブクラスで検索動作をカスタマイズするために存在しています。
このメソッドは、this と引数順が異なることを除いて String.prototype.search() とほぼ同じ方法で使用できます。
RegExp のサブクラスは、動作を修正するために [Symbol.search]() メソッドをオーバーライドできます。
| ECMAScript® 2027 Language Specification # sec-regexp.prototype-%symbol.search% |
Enable JavaScript to view this browser compatibility table.
This page was last modified on 2025年11月10日 by MDN contributors.
Your blueprint for a better internet.
Visit Mozilla Corporation’s not-for-profit parent, the Mozilla Foundation.
Portions of this content are ©1998–2026 by individual mozilla.org contributors. Content available under a Creative Commons license.