?um/p1-90`Stringコンストラクターは以下の通りです:
extends節の値として使用できる。指定されたStringの動作を継承することを意図するサブクラスコンストラクターは、[[StringData]]内部スロットを持つサブクラスインスタンスを作成して初期化するために、Stringコンストラクターへのsuper呼び出しを含めなければならない。この関数は呼び出されたとき、次の手順を実行します:
Stringコンストラクターは以下の通りです:
この関数は、restパラメーター codeUnits を形成する任意個数の引数で呼び出すことができます。
呼び出されたとき、次の手順を実行します:
この関数の
この関数は、restパラメーター codePoints を形成する任意個数の引数で呼び出すことができます。
呼び出されたとき、次の手順を実行します:
この関数の
String.prototypeの初期値は
このプロパティの属性は { [[Writable]]:
この関数は可変個数の引数で呼び出すことができます。第1引数は template であり、残りの引数は
呼び出されたとき、次の手順を実行します:
この関数はTagged Template(
Stringプロトタイプオブジェクトは以下の通りです:
明示的に別途述べられている場合を除き、以下で定義されるStringプロトタイプオブジェクトのメソッドは汎用ではなく、それらに渡される
このメソッドは、このオブジェクトをStringに変換した結果のString値内のインデックス pos にあるコード単位を含む、単一要素のStringを返します。そのインデックスに要素が存在しない場合、結果は空のStringです。結果はString値であり、Stringオブジェクトではありません。
posが整数Numberである場合、x.charAt(pos)の結果はx.substring(pos, pos + 1)の結果と等価です。
このメソッドは呼び出されたとき、次の手順を実行します:
このメソッドは意図的に汎用です。その
このメソッドは、このオブジェクトをStringに変換した結果のString内のインデックス pos にあるコード単位の数値であるNumber(216未満の非負の整数Number)を返します。そのインデックスに要素が存在しない場合、結果は
このメソッドは呼び出されたとき、次の手順を実行します:
このメソッドは意図的に汎用です。その
このメソッドは、このオブジェクトをStringに変換した結果のString内のインデックス pos にある文字列要素から始まるUTF-16符号化コードポイント(
このメソッドは呼び出されたとき、次の手順を実行します:
このメソッドは意図的に汎用です。その
このメソッドが呼び出されたとき、
このメソッドは呼び出されたとき、次の手順を実行します:
このメソッドの
このメソッドは意図的に汎用です。その
String.prototype.constructorの初期値は
このメソッドは呼び出されたとき、次の手順を実行します:
第1引数がRegExpである場合に例外をスローすることは、将来の版がそのような引数値を許す拡張を定義できるようにするために指定されています。
このメソッドは意図的に汎用です。その
このメソッドは呼び出されたとき、次の手順を実行します:
searchString が、このオブジェクトをStringに変換した結果の
第1引数がRegExpである場合に例外をスローすることは、将来の版がそのような引数値を許す拡張を定義できるようにするために指定されています。
このメソッドは意図的に汎用です。その
searchString が、このオブジェクトをStringに変換した結果の
このメソッドは呼び出されたとき、次の手順を実行します:
このメソッドは意図的に汎用です。その
このメソッドは呼び出されたとき、次の手順を実行します:
searchString が、このオブジェクトをStringに変換した結果の
このメソッドは呼び出されたとき、次の手順を実行します:
このメソッドは意図的に汎用です。その
ECMA-402 Internationalization APIを含むECMAScript実装は、このメソッドをECMA-402仕様で指定されるとおりに実装しなければなりません。ECMAScript実装がECMA-402 APIを含まない場合、このメソッドについて以下の仕様が使用されます:
このメソッドは、
比較を実行する前に、このメソッドはStringを準備するために次の手順を実行します:
このメソッドの任意の第2および第3パラメーターの意味はECMA-402仕様で定義されます。ECMA-402サポートを含まない実装は、それらのパラメーター位置に他の解釈を割り当ててはなりません。
実際の戻り値は、追加情報をエンコードすることを許すために実装定義ですが、このメソッドは、2つの引数のメソッドとして考えた場合、すべてのStringの集合上の全順序を定義する
このメソッド自体は、Array.prototype.sortへの引数として直接適していません。後者は2つの引数の関数を要求するためです。
このメソッドは、ECMAScript環境がホスト環境から利用できる任意の言語依存および/またはロケール依存の比較機能に依存してもよく、ホスト環境の現在のロケールの慣習に従って比較することを意図しています。しかし、比較能力に関係なく、このメソッドはUnicode Standardに従う正準等価性を認識して尊重しなければなりません。たとえば、以下の比較はすべて
// Å ANGSTROM SIGN vs.
// Å LATIN CAPITAL LETTER A + COMBINING RING ABOVE
"\u212B".localeCompare("A\u030A")
// Ω OHM SIGN vs.
// Ω GREEK CAPITAL LETTER OMEGA
"\u2126".localeCompare("\u03A9")
// ṩ LATIN SMALL LETTER S WITH DOT BELOW AND DOT ABOVE vs.
// ṩ LATIN SMALL LETTER S + COMBINING DOT ABOVE + COMBINING DOT BELOW
"\u1E69".localeCompare("s\u0307\u0323")
// ḍ̇ LATIN SMALL LETTER D WITH DOT ABOVE + COMBINING DOT BELOW vs.
// ḍ̇ LATIN SMALL LETTER D WITH DOT BELOW + COMBINING DOT ABOVE
"\u1E0B\u0323".localeCompare("\u1E0D\u0307")
// 가 HANGUL CHOSEONG KIYEOK + HANGUL JUNGSEONG A vs.
// 가 HANGUL SYLLABLE GA
"\u1100\u1161".localeCompare("\uAC00")
正準等価性の定義および議論については、Unicode Standardの第2章および第3章、ならびに Unicode Standard Annex #15, Unicode Normalization Forms および Unicode Technical Note #5, Canonical Equivalence in Applications を参照してください。また、Unicode Technical Standard #10, Unicode Collation Algorithm も参照してください。
このメソッドは、Unicode Standard第3章3.7節で定義されるUnicode互換等価性または互換分解を尊重しないことが推奨されます。
このメソッドは意図的に汎用です。その
このメソッドは呼び出されたとき、次の手順を実行します:
このメソッドは意図的に汎用です。その
このメソッドは、
呼び出されたとき、次の手順を実行します:
String.prototype.splitと同様に、String.prototype.matchAllは通常、入力を変更せずに動作するように設計されています。このメソッドは呼び出されたとき、次の手順を実行します:
このメソッドは意図的に汎用です。その
このメソッドは呼び出されたとき、次の手順を実行します:
このメソッドは呼び出されたとき、次の手順を実行します:
The
The
引数 maxLength は、str の長さより小さくならないようにクランプされます。
引数 fillString の既定値は
The
このメソッドは呼び出されたとき、次の手順を実行します:
このメソッドは、
このメソッドは意図的に汎用です。その
このメソッドは呼び出されたとき、次の手順を実行します:
このメソッドは意図的に汎用です。その
The
このメソッドは呼び出されたとき、次の手順を実行します:
このメソッドは呼び出されたとき、次の手順を実行します:
このメソッドは意図的に汎用です。その
このメソッドは、このオブジェクトをStringに変換した結果の
呼び出されたとき、次の手順を実行します:
このメソッドは意図的に汎用です。その
このメソッドは、このオブジェクトをStringに変換した結果の部分文字列を格納したArrayを返します。部分文字列は、separator の出現を左から右に検索することによって決定されます。これらの出現は、返される配列内のどのStringの一部でもありませんが、String値を分割する役割を果たします。separator の値は任意の長さのStringであってもよく、または
呼び出されたとき、次の手順を実行します:
separator の値は空のStringであってもかまいません。この場合、separator は入力Stringの先頭または末尾の空の
separator が
このメソッドは意図的に汎用です。その
このメソッドは呼び出されたとき、次の手順を実行します:
第1引数がRegExpである場合に例外をスローすることは、将来の版がそのような引数値を許す拡張を定義できるようにするために指定されています。
このメソッドは意図的に汎用です。その
このメソッドは、このオブジェクトをStringに変換した結果の
いずれかの引数が
start が end より厳密に大きい場合、それらは交換されます。
呼び出されたとき、次の手順を実行します:
このメソッドは意図的に汎用です。その
ECMA-402 Internationalization APIを含むECMAScript実装は、このメソッドをECMA-402仕様で指定されるとおりに実装しなければなりません。ECMAScript実装がECMA-402 APIを含まない場合、このメソッドについて以下の仕様が使用されます:
このメソッドは、
これはtoLowerCaseとまったく同じように動作しますが、ホスト環境の現在のロケールの慣習に対応するロケール依存の結果を生成することを意図している点が異なります。その言語の規則が通常のUnicode大文字小文字マッピングと衝突する少数の場合(トルコ語など)にのみ差異があります。
このメソッドの任意パラメーターの意味はECMA-402仕様で定義されます。ECMA-402サポートを含まない実装は、これらのパラメーター位置を他の目的に使用してはなりません。
このメソッドは意図的に汎用です。その
ECMA-402 Internationalization APIを含むECMAScript実装は、このメソッドをECMA-402仕様で指定されるとおりに実装しなければなりません。ECMAScript実装がECMA-402 APIを含まない場合、このメソッドについて以下の仕様が使用されます:
このメソッドは、
これはtoUpperCaseとまったく同じように動作しますが、ホスト環境の現在のロケールの慣習に対応するロケール依存の結果を生成することを意図している点が異なります。その言語の規則が通常のUnicode大文字小文字マッピングと衝突する少数の場合(トルコ語など)にのみ差異があります。
このメソッドの任意パラメーターの意味はECMA-402仕様で定義されます。ECMA-402サポートを含まない実装は、これらのパラメーター位置を他の目的に使用してはなりません。
このメソッドは意図的に汎用です。その
このメソッドは、
呼び出されたとき、次の手順を実行します:
結果は、Unicode Character Databaseにおけるロケール非依存の大文字小文字マッピングに従って導かれなければなりません(これには、ファイル UnicodeData.txt だけでなく、それに付随するファイル SpecialCasing.txt 内のすべてのロケール非依存マッピングも明示的に含まれます)。
一部のコードポイントの大文字小文字マッピングは複数のコードポイントを生成する場合があります。この場合、結果のStringは元のStringと同じ長さでないことがあります。toUpperCaseとtoLowerCaseはいずれも文脈依存の動作を持つため、これらのメソッドは対称的ではありません。言い換えると、s.toUpperCase().toLowerCase()は必ずしもs.toLowerCase()と等しいとは限りません。
このメソッドは意図的に汎用です。その
このメソッドは呼び出されたとき、次の手順を実行します:
Stringオブジェクトの場合、このメソッドはたまたまvalueOfメソッドと同じものを返します。
このメソッドは、
これはString.prototype.toLowerCaseとまったく同じように動作しますが、StringがUnicode Default Case ConversionのtoUppercaseアルゴリズムを使用してマップされる点が異なります。
このメソッドは意図的に汎用です。その
このメソッドは、このオブジェクトのString表現を返します。その際、サロゲートペアの一部でないすべての先行サロゲートおよび後続サロゲートはU+FFFD(REPLACEMENT CHARACTER)に置き換えられます。
呼び出されたとき、次の手順を実行します:
このメソッドは、
呼び出されたとき、次の手順を実行します:
このメソッドは意図的に汎用です。その
The
空白の定義は
このメソッドは、
呼び出されたとき、次の手順を実行します:
このメソッドは意図的に汎用です。その
このメソッドは、
呼び出されたとき、次の手順を実行します:
このメソッドは意図的に汎用です。その
このメソッドは呼び出されたとき、次の手順を実行します:
The
このメソッドは、String値のコードポイントを反復し、各コードポイントをString値として返すイテレーターオブジェクトを返します。
呼び出されたとき、次の手順を実行します:
このメソッドの
StringインスタンスはString
Stringインスタンスは
このStringオブジェクトによって表されるString値内の要素数。
Stringオブジェクトが初期化されると、このプロパティは変化しません。その属性は { [[Writable]]:
String Iterator は、ある特定のStringインスタンスオブジェクトに対する特定の反復を表すオブジェクトです。String Iteratorオブジェクトには名前付きコンストラクターはありません。代わりに、String IteratorオブジェクトはStringインスタンスオブジェクトの特定のメソッドを呼び出すことによって作成されます。
%StringIteratorPrototype%オブジェクトは以下の通りです:
このプロパティの属性は { [[Writable]]:
RegExpオブジェクトは、正規表現および関連するフラグを含みます。
正規表現の形式および機能は、Perl 5プログラミング言語における正規表現機能をモデルとしています。
RegExpコンストラクターは、入力パターンStringに以下の文法を適用します。文法がStringを
関連付けられる u \u \u u
ここでの最初の2行はCharacterClassと等価です。
この節のいくつかの生成式には、
この節は
PropertyValueAliases.txt に列挙されているプロパティ値またはプロパティ値別名でない場合、Syntax Errorです。
PropertyValueAliases.txt に列挙されているGeneral_Category(gc)プロパティのUnicodeプロパティ値またはプロパティ値別名でも、The ( 終端記号に一致する任意の ( パターン文字です。
この節は
It performs the following steps when called:
The
この節は
It performs the following steps when called:
The
The
この節は
It is defined piecewise over the following productions:
「
The
この節は
It is defined piecewise over the following productions:
The
この節は
It is defined piecewise over the following productions:
| ControlEscape | 数値 | コードポイント | Unicode名 | 記号 |
|---|---|---|---|---|
t
|
9 |
U+0009
|
CHARACTER TABULATION | <HT> |
n
|
10 |
U+000A
|
LINE FEED (LF) | <LF> |
v
|
11 |
U+000B
|
LINE TABULATION | <VT> |
f
|
12 |
U+000C
|
FORM FEED (FF) | <FF> |
r
|
13 |
U+000D
|
CARRIAGE RETURN (CR) | <CR> |
\0 は <NUL> 文字を表し、10進数字を後続させることはできません。
The
The
The
The
The
正規表現パターンは、以下で説明されるプロセスを用いて
u も v も含まない場合、BMPパターンです。それ以外の場合はUnicodeパターンです。BMPパターンは、Basic Multilingual Planeの範囲内のUnicodeコードポイントである16ビット値の列から成るものとして解釈されるStringに対してマッチします。Unicodeパターンは、UTF-16を用いて符号化されたUnicodeコードポイントから成るものとして解釈されるStringに対してマッチします。BMPパターンの動作を説明する文脈では、“character”は単一の16ビットUnicode BMPコードポイントを意味します。Unicodeパターンの動作を説明する文脈では、“character”はUTF-16符号化コードポイント(
例えば、単一の非BMP文字 U+1D11E(MUSICAL SYMBOL G CLEF)としてソーステキスト内に表現されたパターンを考えます。Unicodeパターンとして解釈される場合、それは単一のコードポイント U+1D11E から成る単一要素(character)の
パターンはECMAScript String値としてRegExpコンストラクターに渡され、その中では非BMP文字はUTF-16で符号化されています。例えば、String値として表現された単一文字MUSICAL SYMBOL G CLEFパターンは、要素がコード単位 0xD834 および 0xDD1E である長さ2のStringです。したがって、2つのパターン文字から成るBMPパターンとして処理するためには、その文字列をさらに変換する必要はありません。しかし、Unicodeパターンとして処理するには、唯一の要素が単一のパターン文字、すなわちコードポイント U+1D11E である
実装は実際にこのようなUTF-16への、またはUTF-16からの変換を行わない場合がありますが、この仕様の意味論は、パターンマッチングの結果がそのような変換が行われたかのようであることを要求します。
以下の説明では、次の内部データ構造を使用します:
RegExp Record は、コンパイル中および場合によってはマッチング中に必要となるRegExpに関する情報を格納するために使用される
これは以下のフィールドを持ちます:
| フィールド名 | 値 | 意味 |
|---|---|---|
| [[IgnoreCase]] | Boolean | RegExpのフラグに |
| [[Multiline]] | Boolean | RegExpのフラグに |
| [[DotAll]] | Boolean | RegExpのフラグに |
| [[Unicode]] | Boolean | RegExpのフラグに |
| [[UnicodeSets]] | Boolean | RegExpのフラグに |
| [[CapturingGroupsCount]] | 非負整数 | RegExpのパターン内の |
The
Patternは
The
この節は
It is defined piecewise over the following productions:
| 正規表現演算子は2つの選択肢を分離します。パターンはまず左の | によってスキップされたパターン部分内のキャプチャ括弧は、Stringではなく
/a|ab/.exec("abc")
は
/((a)|(ab))((c)|(bc))/.exec("abc")
は次の配列を返し、
["abc", "a", "a", undefined, "bc", undefined, "bc"]
次の配列は返しません。
["abc", "ab", undefined, "ab", "c", "c", undefined]
2つの選択肢が試される順序は、direction の値に依存しません。
連続する
結果の
The
次を比較してください:
/a[a-z]{2,4}/.exec("abcdefghi")
これは
/a[a-z]{2,4}?/.exec("abcdefghi")
これは
また次も考えてください:
/(aa|aabaac|ba|b|c)*/.exec("aabaac")
これは、上記の選択点の順序により、次の配列を返し、
["aaba", "ba"]
次のいずれも返しません:
["aabaac", "aabaac"]
["aabaac", "c"]
上記の選択点の順序は、2つの数(単項表記で表される)の最大公約数を計算する正規表現を書くために使用できます。次の例は10と15のgcdを計算します:
"aaaaaaaaaa,aaaaaaaaaaaaaaa".replace(/^(a+)\1*,\1+$/, "$1")
これは単項表記でgcd
RepeatMatcherのステップ
/(z)((a+)?(b+)?(c))*/.exec("zaacbbbcac")
これは次の配列を返し、
["zaacbbbcac", "z", "ac", "a", undefined, "c"]
次の配列は返しません。
["zaacbbbcac", "z", "ac", "a", "bbb", "c"]
なぜなら、最外側の * の各反復が、量化された
The
The
The
The
この節は
It is defined piecewise over the following productions:
パターンで y フラグが使用されている場合でも、^ は常に input の先頭、または(regexpRecord.[[Multiline]] が
形式 (?= ) はゼロ幅の肯定先読みを指定します。これが成功するためには、(?= 形式へのバックトラッキングはありません(この通常とは異なる挙動はPerlから継承されています)。これは、
例えば、
/(?=(a+))/.exec("baaabac")
は最初の b の直後の空Stringにマッチし、そのため次の配列を返します:
["", "aaa"]
先読みへのバックトラッキングが存在しないことを示すため、次を考えてください:
/(?=(a+))a*b\1/.exec("baaabac")
この式は次を返し、
["aba", "a"]
次は返しません:
["aaaba", "a"]
形式 (?! ) はゼロ幅の否定先読みを指定します。これが成功するためには、
/(.*?)a(?!(a+)b\2c)\2(.*)/.exec("baaabaac")
は、正の数 n 個の a、b、別の n 個の a(最初の \2 で指定される)、および c が直後に続かない a を探します。2番目の \2 は否定先読みの外側にあるため、
["baaabaac", "ba", undefined, "abaac"]
The
The
The
The
この節は
It is defined piecewise over the following productions:
( ) 形式の括弧は、\ の後に0でない10進数が続くもの)、置換String内の参照、または正規表現マッチング(?: ) 形式を使用します。
\ の後に0でない10進数 n が続く形式のエスケープ列は、n番目 のキャプチャ括弧集合の結果(
The
The
The
CaseFolding.txt が ch に対するsimpleまたはcommon case foldingマッピングを提供する場合、そのマッピングを ch に適用した結果を返す。ß(U+00DF LATIN SMALL LETTER SHARP S)を ss または SS へ写像しません。ただし、Basic Latinブロック外のコードポイントをその内部のコードポイントへ写像する場合があります。例えば、ſ(U+017F LATIN SMALL LETTER LONG S)は s(U+0073 LATIN SMALL LETTER S)へcase-foldされ、K(U+212A KELVIN SIGN)は k(U+006B LATIN SMALL LETTER K)へcase-foldされます。これらのコードポイントを含むStringは、/[a-z]/ui のような正規表現によってマッチされます。
Ω(U+2126 OHM SIGN)はtoUppercaseではそれ自身へ写像されますが、toCasefoldでは Ω(U+03A9 GREEK CAPITAL LETTER OMEGA)とともに ω(U+03C9 GREEK SMALL LETTER OMEGA)へ写像されます。そのため /[ω]/ui および /[\u03A9]/ui にはマッチしますが、/[ω]/i または /[\u03A9]/i にはマッチしません。また、Basic Latinブロック外のコードポイントはその内部のコードポイントへ写像されないため、/[a-z]/i にマッチしません。
The
The
The
この節は
It is defined piecewise over the following productions:
パターンが大小文字を無視する場合でも、範囲の両端の大小文字は、どのcharacterがその範囲に属するかを決定する際に重要です。したがって、例えばパターン /[E-F]/i は文字 E、F、e、および f のみにマッチしますが、パターン /[E-f]/i はUnicode Basic Latinブロック内のすべての大文字および小文字に加え、記号 [, \, ], ^, _, および ` にもマッチします。
- characterはリテラルとして扱われることも、範囲を示すこともできます。
- U+002D(HYPHEN-MINUS)を含む\b、\B、および後方参照を除き、正規表現の他の部分で許される任意のエスケープ列を使用できます。\b はバックスペースcharacterを意味し、\B および後方参照はエラーを発生させます。
0、1、2、3、4、5、6、7、8、および 9 を含む10要素のGeneral_Category, s) が、PropertyValueAliases.txt に列挙されているGeneral_Category(gc)プロパティのUnicodeプロパティ値またはプロパティ値別名である場合、次を行う:結果はしばしば2つ以上の範囲から成ります。UnicodeSetsが
The
The
The \b、\B、\w、および \W の目的において「単語character」と見なされるcharacterを含む
The
The CaseFolding.txt にある Simple Case Folding(
The
The
実装は、
例えば、Script_Extensions(scx(プロパティ別名)は有効ですが、script_extensions または Scx は有効ではありません。
列挙されたプロパティは、UTS18 RL1.2 が要求するものの上位集合を形成します。
これらの表内のエントリの綴り(大文字小文字を含む)は、Unicode Character Databaseのファイル PropertyAliases.txt で使用される綴りと一致します。そのファイル内の正確な綴りは安定であることが保証されています。
General_Category |
General_Category |
gc |
|
Script |
Script |
sc |
|
Script_Extensions |
Script_Extensions |
scx |
ASCII |
ASCII |
ASCII_Hex_Digit |
ASCII_Hex_Digit |
AHex |
|
Alphabetic |
Alphabetic |
Alpha |
|
Any |
Any |
Assigned |
Assigned |
Bidi_Control |
Bidi_Control |
Bidi_C |
|
Bidi_Mirrored |
Bidi_Mirrored |
Bidi_M |
|
Case_Ignorable |
Case_Ignorable |
CI |
|
Cased |
Cased |
Changes_When_Casefolded |
Changes_When_Casefolded |
CWCF |
|
Changes_When_Casemapped |
Changes_When_Casemapped |
CWCM |
|
Changes_When_Lowercased |
Changes_When_Lowercased |
CWL |
|
Changes_When_NFKC_Casefolded |
Changes_When_NFKC_Casefolded |
CWKCF |
|
Changes_When_Titlecased |
Changes_When_Titlecased |
CWT |
|
Changes_When_Uppercased |
Changes_When_Uppercased |
CWU |
|
Dash |
Dash |
Default_Ignorable_Code_Point |
Default_Ignorable_Code_Point |
DI |
|
Deprecated |
Deprecated |
Dep |
|
Diacritic |
Diacritic |
Dia |
|
Emoji |
Emoji |
Emoji_Component |
Emoji_Component |
EComp |
|
Emoji_Modifier |
Emoji_Modifier |
EMod |
|
Emoji_Modifier_Base |
Emoji_Modifier_Base |
EBase |
|
Emoji_Presentation |
Emoji_Presentation |
EPres |
|
Extended_Pictographic |
Extended_Pictographic |
ExtPict |
|
Extender |
Extender |
Ext |
|
Grapheme_Base |
Grapheme_Base |
Gr_Base |
|
Grapheme_Extend |
Grapheme_Extend |
Gr_Ext |
|
Hex_Digit |
Hex_Digit |
Hex |
|
IDS_Binary_Operator |
IDS_Binary_Operator |
IDSB |
|
IDS_Trinary_Operator |
IDS_Trinary_Operator |
IDST |
|
ID_Continue |
ID_Continue |
IDC |
|
ID_Start |
ID_Start |
IDS |
|
Ideographic |
Ideographic |
Ideo |
|
Join_Control |
Join_Control |
Join_C |
|
Logical_Order_Exception |
Logical_Order_Exception |
LOE |
|
Lowercase |
Lowercase |
Lower |
|
Math |
Math |
Noncharacter_Code_Point |
Noncharacter_Code_Point |
NChar |
|
Pattern_Syntax |
Pattern_Syntax |
Pat_Syn |
|
Pattern_White_Space |
Pattern_White_Space |
Pat_WS |
|
Quotation_Mark |
Quotation_Mark |
QMark |
|
Radical |
Radical |
Regional_Indicator |
Regional_Indicator |
RI |
|
Sentence_Terminal |
Sentence_Terminal |
STerm |
|
Soft_Dotted |
Soft_Dotted |
SD |
|
Terminal_Punctuation |
Terminal_Punctuation |
Term |
|
Unified_Ideograph |
Unified_Ideograph |
UIdeo |
|
Uppercase |
Uppercase |
Upper |
|
Variation_Selector |
Variation_Selector |
VS |
|
White_Space |
White_Space |
space |
|
XID_Continue |
XID_Continue |
XIDC |
|
XID_Start |
XID_Start |
XIDS |
Basic_Emoji |
Emoji_Keycap_Sequence |
RGI_Emoji_Modifier_Sequence |
RGI_Emoji_Flag_Sequence |
RGI_Emoji_Tag_Sequence |
RGI_Emoji_ZWJ_Sequence |
RGI_Emoji |
The
PropertyValueAliases.txt に列挙されているUnicodeプロパティ p のプロパティ値またはプロパティ値別名である。実装は、PropertyValueAliases.txt に列挙されているUnicodeプロパティ値およびプロパティ値別名をサポートしなければなりません。相互運用性を確保するため、実装は他のプロパティ値またはプロパティ値別名をサポートしてはなりません。
例えば、Xpeo および Old_Persian は有効な Script_Extensions 値ですが、xpeo および Old Persian は有効ではありません。
このアルゴリズムは、UAX44に列挙されているシンボリック値のマッチング規則とは異なります。大文字小文字、Is 接頭辞はサポートされません。
The
The
The
The
The
この節は
It performs the following steps when called:
RegExpコンストラクターは以下の通りです:
extends節の値として使用できる。指定されたRegExpの動作を継承することを意図するサブクラスコンストラクターは、必要な内部スロットを持つサブクラスインスタンスを作成して初期化するために、RegExpコンストラクターへのsuper呼び出しを含めなければならない。この関数は呼び出されたとき、次の手順を実行します:
patternが
RegExpコンストラクターは以下の通りです:
この関数は、正規表現
呼び出されたとき、次の手順を実行します:
\0 characterエスケープまたは \1 のような \c の後の文脈について同じことを行う。名前は似ていますが、RegExp.escapeは同様の動作を行いません。前者は文字列として表現するためにパターンをエスケープし、この関数はパターン内で表現するために文字列をエスケープします。
The
RegExp.prototypeの初期値は
このプロパティの属性は { [[Writable]]:
RegExp[%Symbol.species%]は、setアクセサー関数が
この関数の
RegExpプロトタイプメソッドは通常、その
RegExpプロトタイプオブジェクトは以下の通りです:
RegExpプロトタイプオブジェクトは独自の
RegExp.prototype.constructorの初期値は
このメソッドは string から正規表現パターンの出現を検索し、マッチ結果を含むArrayを返します。または string がマッチしなかった場合は
呼び出されたとき、次の手順を実行します:
RegExp.prototype.dotAllは、setアクセサー関数が
RegExp.prototype.flagsは、setアクセサー関数が
The
RegExp.prototype.globalは、setアクセサー関数が
RegExp.prototype.hasIndicesは、setアクセサー関数が
RegExp.prototype.ignoreCaseは、setアクセサー関数が
このメソッドは呼び出されたとき、次の手順を実行します:
このメソッドの
このメソッドは呼び出されたとき、次の手順を実行します:
このメソッドの
RegExp.prototype.multilineは、setアクセサー関数が
このメソッドは呼び出されたとき、次の手順を実行します:
このメソッドの
このメソッドは呼び出されたとき、次の手順を実行します:
このメソッドの
このRegExpオブジェクトの
RegExp.prototype.sourceは、setアクセサー関数が
The
/ または任意の /// は 名前は似ていますが、RegExp.escapeとEscapeRegExpPatternは同様の動作を行いません。前者はパターン内で表現するために文字列をエスケープし、この関数は文字列として表現するためにパターンをエスケープします。
このメソッドは、string をStringに変換した結果の部分文字列を格納したArrayを返します。部分文字列は、
/a*?/[Symbol.split]("ab") は配列 ["a", "b"] に評価される一方、/a*/[Symbol.split]("ab") は配列 ["","b"] に評価されます。)
string が空のStringである(または空のStringに変換される)場合、結果は正規表現が空のStringにマッチできるかどうかに依存します。マッチできる場合、結果配列は要素を含みません。そうでない場合、結果配列は1つの要素を含み、それは空のStringです。
正規表現がキャプチャ括弧を含む場合、separator がマッチするたびに、キャプチャ括弧の結果(任意の
/<(\/)?([^<>]+)>/[Symbol.split]("A<B>bold</B>and<CODE>coded</CODE>")
は次の配列に評価されます:
["A", undefined, "B", "bold", "/", "B", "and", undefined, "CODE", "coded", "/", "CODE", ""]
limit が
このメソッドは呼び出されたとき、次の手順を実行します:
このメソッドの
このメソッドは、このRegExpオブジェクトの
RegExp.prototype.stickyは、setアクセサー関数が
このメソッドは呼び出されたとき、次の手順を実行します:
返されるStringは、このオブジェクトと同じ動作を持つ別のRegExpオブジェクトに評価される
RegExp.prototype.unicodeは、setアクセサー関数が
RegExp.prototype.unicodeSetsは、setアクセサー関数が
The
呼び出し可能な
The
The
The
Match Record は、正規表現マッチまたはキャプチャの開始インデックスと終了インデックスをカプセル化するために使用される
Match Recordは、
| フィールド名 | 値 | 意味 |
|---|---|---|
| [[StartIndex]] | 非負整数 | マッチが始まる(包含)文字列の先頭からのコード単位数。 |
| [[EndIndex]] | [[StartIndex]]以上の整数 | マッチが終わる(排他)文字列の先頭からのコード単位数。 |
The
The
The
RegExpインスタンスは、
ECMAScript 2015より前は、RegExpインスタンスは独自のデータプロパティRegExp.prototypeのアクセサープロパティとして指定されています。
RegExpインスタンスは、以下のプロパティも持ちます:
RegExp String Iterator は、ある特定のStringインスタンスオブジェクトに対して、ある特定のRegExpインスタンスオブジェクトとマッチさせながら行う特定の反復を表すオブジェクトです。RegExp String Iteratorオブジェクトには名前付きコンストラクターはありません。代わりに、RegExp String IteratorオブジェクトはRegExpインスタンスオブジェクトの特定のメソッドを呼び出すことによって作成されます。
The
%RegExpStringIteratorPrototype%オブジェクトは以下の通りです:
このプロパティの属性は { [[Writable]]:
| 内部スロット | 型 | 説明 |
|---|---|---|
| [[IteratingRegExp]] | Object | 反復に使用される正規表現。 |
| [[IteratedString]] | String | 反復対象のString値。 |
| [[Global]] | Boolean | [[IteratingRegExp]] がglobalであるかどうかを示します。 |
| [[Unicode]] | Boolean | [[IteratingRegExp]] がUnicodeモードであるかどうかを示します。 |
| [[Done]] | Boolean | 反復が完了したかどうかを示します。 |