A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Symbol/match below:

Symbol.match - JavaScript | MDN

Symbol.match

Baseline Widely available

Symbol.match は静的データプロパティで、ウェルノウンシンボルである Symbol.match を表します。String.prototype.match() メソッドは第 1 引数に対して、入力文字列と現在のオブジェクトとの照合に使われるメソッドを、このシンボルで探します。このシンボルは、オブジェクトが正規表現として扱われるべきかどうかを決定するためにも使用されます。

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

試してみましょう
const regexp1 = /foo/;
// console.log('/foo/'.startsWith(regexp1));
// Expected output (Chrome): Error: First argument to String.prototype.startsWith must not be a regular expression
// Expected output (Firefox): Error: Invalid type: first can't be a Regular Expression
// Expected output (Safari): Error: Argument to String.prototype.startsWith cannot be a RegExp

regexp1[Symbol.match] = false;

console.log("/foo/".startsWith(regexp1));
// Expected output: true

console.log("/baz/".endsWith(regexp1));
// Expected output: false
値

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

書込可能 不可 列挙可能 不可 設定可能 不可 解説

この関数は、オブジェクトが正規表現の動作をするかどうかを識別するためにも使用されます。たとえば、String.prototype.startsWith(), String.prototype.endsWith(), String.prototype.includes() メソッドは、最初の引数が正規表現であるかどうかを確認し、正規表現である場合は TypeError が発生します。ここで、match シンボルが false(または偽値、ただし undefined でないもの)に設定されている場合、そのオブジェクトが正規表現オブジェクトとして使用されることを意図していないことを示します。

例 isRegExp チェックを無効にする

以下のコードは TypeError を投げます。

"/bar/".startsWith(/bar/);

// TypeError が発生。/bar/ が正規表現であり、
// Symbol.match が変更されていないため。

ただし、Symbol.match を false に設定すると、オブジェクトが正規表現オブジェクトではないことを示します。結果として、startsWith と endsWith メソッドは、TypeError を発生させません。

const re = /foo/;
re[Symbol.match] = false;
"/foo/".startsWith(re); // true
"/baz/".endsWith(re); // false
仕様書 ブラウザーの互換性 関連情報

RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4