このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docs コミュニティーについてもっと知り、仲間になるにはこちらから。

View in English Always switch to English

Symbol.search

Baseline 広く利用可能

この機能は広く実装されており、多くのバージョンの端末やブラウザーで動作します。2020年1月以降、すべてのブラウザーで利用可能です。

Symbol.search は静的データプロパティで、ウェルノウンシンボルSymbol.search を表します。String.prototype.search() メソッドは第一引数から、文字列内で現在のオブジェクトに一致する場所を返すメソッドを、このシンボルで探します。

詳しくは、RegExp.prototype[Symbol.search]()String.prototype.search() を参照してください。

試してみましょう

class Search1 {
  constructor(value) {
    this.value = value;
  }
  [Symbol.search](string) {
    return string.indexOf(this.value);
  }
}

console.log("foobar".search(new Search1("bar")));
// 予想される結果: 3

ウェルノウンシンボル Symbol.search です。

Symbol.search のプロパティ属性
書込可能不可
列挙可能不可
設定可能不可

独自の文字列検索

js
class CaseInsensitiveSearch {
  constructor(value) {
    this.value = value.toLowerCase();
  }
  [Symbol.search](string) {
    return string.toLowerCase().indexOf(this.value);
  }
}

console.log("foobar".search(new CaseInsensitiveSearch("BaR"))); // 3

仕様書

仕様書
ECMAScript® 2027 Language Specification
# sec-symbol.search

ブラウザーの互換性

関連情報