From 33058f2b292b3a581333bdfb21b8f671898c5060 Mon Sep 17 00:00:00 2001 From: Peter Bengtsson Date: Tue, 8 Dec 2020 14:40:17 -0500 Subject: initial commit --- .../global_objects/symbol/match/index.html | 70 ++++++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 files/ja/web/javascript/reference/global_objects/symbol/match/index.html (limited to 'files/ja/web/javascript/reference/global_objects/symbol/match') diff --git a/files/ja/web/javascript/reference/global_objects/symbol/match/index.html b/files/ja/web/javascript/reference/global_objects/symbol/match/index.html new file mode 100644 index 0000000000..5f19c5f307 --- /dev/null +++ b/files/ja/web/javascript/reference/global_objects/symbol/match/index.html @@ -0,0 +1,70 @@ +--- +title: Symbol.match +slug: Web/JavaScript/Reference/Global_Objects/Symbol/match +tags: + - ECMAScript 2015 + - JavaScript + - Property + - Symbol +translation_of: Web/JavaScript/Reference/Global_Objects/Symbol/match +--- +
{{JSRef}}
+ +

Symbol.match は、文字列に対して正規表現のマッチングを指定します。この関数は {{jsxref("String.prototype.match()")}} メソッドによって呼び出されます。

+ +
{{EmbedInteractiveExample("pages/js/symbol-match.html")}}
+ + + +

説明

+ +

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

+ +

{{js_property_attributes(0,0,0)}}

+ +

+ +

isRegExp チェックを無効にする

+ +

以下のコードは {{jsxref("TypeError")}} を投げます。

+ +
'/bar/'.startsWith(/bar/);
+
+// Throws TypeError, as /bar/ is a regular expression
+// and Symbol.match is not modified.
+ +

ただし、Symbol.matchfalse に設定すると、(match プロパティを使用する)isRegExp チェックは、オブジェクトが正規表現オブジェクトではないことを示します。結果として、startsWithendsWith メソッドは、TypeError を投げません。

+ +
var re = /foo/;
+re[Symbol.match] = false;
+'/foo/'.startsWith(re); // true
+'/baz/'.endsWith(re);   // false
+
+ +

仕様

+ + + + + + + + + + +
仕様書
{{SpecName('ESDraft', '#sec-symbol.match', 'Symbol.match')}}
+ +

ブラウザー実装状況

+ + + +

{{Compat("javascript.builtins.Symbol.match")}}

+ +

関連情報

+ + -- cgit v1.2.3-54-g00ecf