?um/p1-90`String
extends 子句的值。意图继承指定 String 行为的子类super 调用,以创建并初始化带有 [[StringData]] 内部槽的子类实例。此函数在被调用时执行以下步骤:
String
此函数可使用任意数量的参数调用,这些参数构成剩余参数 codeUnits。
它在被调用时执行以下步骤:
此函数的
此函数可使用任意数量的参数调用,这些参数构成剩余参数 codePoints。
它在被调用时执行以下步骤:
此函数的
String.prototype 的初始值是
此属性具有特性 { [[Writable]]:
此函数可使用可变数量的参数调用。第一个参数是 template,其余参数构成
它在被调用时执行以下步骤:
此函数旨在用作 Tagged Template(
String 原型对象:
除非另有明确说明,下文定义的 String 原型对象的方法不是泛型的,传递给它们的
此方法返回一个单元素 String,该元素为将此对象转换为 String 后所得 String 值中索引 pos 处的码元。如果该索引处没有元素,则结果为空 String。结果是 String 值,而不是 String 对象。
如果 pos 是一个x.charAt(pos) 的结果等价于 x.substring(pos, pos + 1) 的结果。
此方法在被调用时执行以下步骤:
此方法有意设计为泛型;它不要求其
此方法返回一个 Number(小于 216 的非负
此方法在被调用时执行以下步骤:
此方法有意设计为泛型;它不要求其
此方法在被调用时执行以下步骤:
此方法有意设计为泛型;它不要求其
当调用此方法时,它返回由
此方法在被调用时执行以下步骤:
此方法的
此方法有意设计为泛型;它不要求其
String.prototype.constructor 的初始值是
此方法在被调用时执行以下步骤:
指定当第一个参数是 RegExp 时抛出异常,是为了允许未来版本定义允许此类参数值的扩展。
此方法有意设计为泛型;它不要求其
此方法在被调用时执行以下步骤:
如果 searchString 作为将此对象转换为 String 后所得结果的一个
指定当第一个参数是 RegExp 时抛出异常,是为了允许未来版本定义允许此类参数值的扩展。
此方法有意设计为泛型;它不要求其
如果 searchString 作为将此对象转换为 String 后所得结果的一个
此方法在被调用时执行以下步骤:
此方法有意设计为泛型;它不要求其
此方法在被调用时执行以下步骤:
如果 searchString 作为将此对象转换为 String 后所得结果的一个
此方法在被调用时执行以下步骤:
此方法有意设计为泛型;它不要求其
包含 ECMA-402 国际化 API 的 ECMAScript 实现必须按照 ECMA-402 规范中的规定实现此方法。如果 ECMAScript 实现不包含 ECMA-402 API,则使用以下对此方法的规范:
此方法返回一个非
在执行比较之前,此方法执行以下步骤来准备 String:
此方法的可选第二和第三参数的含义在 ECMA-402 规范中定义;不包含 ECMA-402 支持的实现不得为这些参数位置赋予任何其他解释。
实际返回值是
此方法本身并不直接适合作为 Array.prototype.sort 的参数,因为后者需要一个双参数函数。
此方法可以依赖 ECMAScript 环境从
// Å 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 标准第 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 标准第 3 章第 3.7 节中定义的 Unicode 兼容等价或兼容分解。
此方法有意设计为泛型;它不要求其
此方法在被调用时执行以下步骤:
此方法有意设计为泛型;它不要求其
此方法对表示
它在被调用时执行以下步骤:
String.prototype.split,String.prototype.matchAll 被设计为通常不改变其输入。此方法在被调用时执行以下步骤:
此方法有意设计为泛型;它不要求其
此方法在被调用时执行以下步骤:
此方法在被调用时执行以下步骤:
The abstract operation StringPaddingBuiltinsImpl takes arguments thisValue (一个
The abstract operation StringPad takes arguments str (一个 String,), maxLength (一个非负
参数 maxLength 将被
参数 fillString 默认为
The abstract operation ToZeroPaddedDecimalString takes arguments n (一个非负
此方法在被调用时执行以下步骤:
此方法创建由
此方法有意设计为泛型;它不要求其
此方法在被调用时执行以下步骤:
此方法有意设计为泛型;它不要求其
The abstract operation GetSubstitution takes arguments matched (一个 String,), str (一个 String,), position (一个非负
此方法在被调用时执行以下步骤:
此方法在被调用时执行以下步骤:
此方法有意设计为泛型;它不要求其
此方法返回将此对象转换为 String 后所得结果的一个
它在被调用时执行以下步骤:
此方法有意设计为泛型;它不要求其
此方法返回一个 Array,其中存储了将此对象转换为 String 后所得结果的各个
它在被调用时执行以下步骤:
separator 的值可以是空 String。在这种情况下,separator 不匹配输入 String 开头或结尾处的空
如果
如果 separator 是
此方法有意设计为泛型;它不要求其
此方法在被调用时执行以下步骤:
指定当第一个参数是 RegExp 时抛出异常,是为了允许未来版本定义允许此类参数值的扩展。
此方法有意设计为泛型;它不要求其
此方法返回将此对象转换为 String 后所得结果的一个
如果任一参数是
如果 start 严格大于 end,则交换它们。
它在被调用时执行以下步骤:
此方法有意设计为泛型;它不要求其
包含 ECMA-402 国际化 API 的 ECMAScript 实现必须按照 ECMA-402 规范中的规定实现此方法。如果 ECMAScript 实现不包含 ECMA-402 API,则使用以下对此方法的规范:
此方法将 String 值解释为 UTF-16 编码码点的序列,如
它的工作方式与 toLowerCase 完全相同,只是它旨在产生与
此方法的可选参数的含义在 ECMA-402 规范中定义;不包含 ECMA-402 支持的实现不得将这些参数位置用于任何其他用途。
此方法有意设计为泛型;它不要求其
包含 ECMA-402 国际化 API 的 ECMAScript 实现必须按照 ECMA-402 规范中的规定实现此方法。如果 ECMAScript 实现不包含 ECMA-402 API,则使用以下对此方法的规范:
此方法将 String 值解释为 UTF-16 编码码点的序列,如
它的工作方式与 toUpperCase 完全相同,只是它旨在产生与
此方法的可选参数的含义在 ECMA-402 规范中定义;不包含 ECMA-402 支持的实现不得将这些参数位置用于任何其他用途。
此方法有意设计为泛型;它不要求其
此方法将 String 值解释为 UTF-16 编码码点的序列,如
它在被调用时执行以下步骤:
结果必须根据 Unicode 字符数据库中的非区域设置敏感大小写映射派生(这明确不仅包括文件 UnicodeData.txt,还包括随附文件 SpecialCasing.txt 中所有非区域设置敏感映射)。
某些码点的大小写映射可能产生多个码点。在这种情况下,结果 String 的长度可能与源 String 不同。由于 toUpperCase 和 toLowerCase 都具有上下文敏感行为,这些方法并不对称。换句话说,s.toUpperCase().toLowerCase() 不一定等于 s.toLowerCase()。
此方法有意设计为泛型;它不要求其
此方法在被调用时执行以下步骤:
对于 String 对象,此方法碰巧返回与 valueOf 方法相同的内容。
此方法将 String 值解释为 UTF-16 编码码点的序列,如
它的行为与 String.prototype.toLowerCase 完全相同,只是使用 Unicode 默认大小写转换的 toUppercase 算法来映射 String。
此方法有意设计为泛型;它不要求其
此方法返回此对象的 String 表示,其中所有不属于
它在被调用时执行以下步骤:
此方法将 String 值解释为 UTF-16 编码码点的序列,如
它在被调用时执行以下步骤:
此方法有意设计为泛型;它不要求其
The abstract operation TrimString takes arguments string (一个
空白的定义是
此方法将 String 值解释为 UTF-16 编码码点的序列,如
它在被调用时执行以下步骤:
此方法有意设计为泛型;它不要求其
此方法将 String 值解释为 UTF-16 编码码点的序列,如
它在被调用时执行以下步骤:
此方法有意设计为泛型;它不要求其
此方法在被调用时执行以下步骤:
The abstract operation ThisStringValue takes argument value (一个
此方法返回一个迭代器对象,该对象迭代 String 值的码点,并将每个码点作为 String 值返回。
它在被调用时执行以下步骤:
此方法的
String 实例是 String
String 实例有一个
由此 String 对象表示的 String 值中的元素数量。
一旦 String 对象被初始化,此属性即不可更改。它具有特性 { [[Writable]]:
String Iterator 是一个表示对某个特定 String 实例对象进行特定迭代的对象。String Iterator 对象没有具名
%StringIteratorPrototype% 对象:
此属性具有特性 { [[Writable]]:
RegExp 对象包含一个正则表达式和关联的标志。
正则表达式的形式和功能以 Perl 5 编程语言中的正则表达式设施为模型。
RegExp
对于每个关联的 u \u u u \u
这里的前两行等价于 CharacterClass。
本节中的若干产生式在
本节在
PropertyValueAliases.txt 中列出的、由 PropertyValueAliases.txt 中列出的 General_Category (gc) 属性的 Unicode 属性值或属性值别名,也不是 The abstract operation CountLeftCapturingParensWithin takes argument node (一个 Parse Node,) and returns 一个非负( 终结符所匹配的 ( 模式字符。
本节在
It performs the following steps when called:
The abstract operation CountLeftCapturingParensBefore takes argument node (一个 Parse Node,) and returns 一个非负
本节在
It performs the following steps when called:
The abstract operation MightBothParticipate takes arguments x (一个 Parse Node,) and y (一个 Parse Node,) and returns 一个 Boolean. It performs the following steps when called:
The syntax-directed operation CapturingGroupNumber takes no arguments and returns 一个正
本节在
It is defined piecewise over the following productions:
“
The syntax-directed operation IsCharacterClass takes no arguments and returns 一个 Boolean.
本节在
It is defined piecewise over the following productions:
The syntax-directed operation CharacterValue takes no arguments and returns 一个非负
本节在
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> 字符,且其后不能跟十进制数字。
The syntax-directed operation MayContainStrings takes no arguments and returns 一个 Boolean. It is defined piecewise over the following productions:
The abstract operation GroupSpecifiersThatMatch takes argument thisGroupName (一个
The syntax-directed operation CapturingGroupName takes no arguments and returns 一个 String. It is defined piecewise over the following productions:
The syntax-directed operation RegExpIdentifierCodePoints takes no arguments and returns 一个码点
The syntax-directed operation RegExpIdentifierCodePoint takes no arguments and returns 一个码点. It is defined piecewise over the following productions:
正则表达式模式会通过下文描述的过程被转换为一个
如果一个 u 也不包含 v,则它是 BMP 模式。否则,它是 Unicode 模式。BMP 模式匹配一个被解释为由 16 位值序列组成的 String,这些 16 位值是基本多文种平面范围内的 Unicode 码点。Unicode 模式匹配一个被解释为由使用 UTF-16 编码的 Unicode 码点组成的 String。在描述 BMP 模式行为的上下文中,“字符”指单个 16 位 Unicode BMP 码点。在描述 Unicode 模式行为的上下文中,“字符”指一个 UTF-16 编码码点(
例如,考虑一个在源文本中表示为单个非 BMP 字符 U+1D11E (MUSICAL SYMBOL G CLEF) 的模式。将其解释为 Unicode 模式时,它将是一个由单个码点 U+1D11E 组成的单元素(字符)
模式作为 ECMAScript String 值传递给 RegExp
实现实际上可以不执行这种到 UTF-16 或从 UTF-16 的转换,但本规范的语义要求模式匹配的结果仿佛这些转换已经执行。
以下描述使用下列内部数据结构:
RegExp Record 是一个
它具有以下字段:
| 字段名 | 值 | 含义 |
|---|---|---|
| [[IgnoreCase]] | 一个 Boolean | 指示 RegExp 的标志中是否出现 |
| [[Multiline]] | 一个 Boolean | 指示 RegExp 的标志中是否出现 |
| [[DotAll]] | 一个 Boolean | 指示 RegExp 的标志中是否出现 |
| [[Unicode]] | 一个 Boolean | 指示 RegExp 的标志中是否出现 |
| [[UnicodeSets]] | 一个 Boolean | 指示 RegExp 的标志中是否出现 |
| [[CapturingGroupsCount]] | 一个非负 |
RegExp 的模式中 |
The syntax-directed operation CompilePattern takes argument regexpRecord (一个
Pattern 会编译为一个
The syntax-directed operation CompileSubpattern takes arguments regexpRecord (一个
本节在
It is defined piecewise over the following productions:
| 正则表达式运算符分隔两个替代项。模式首先尝试匹配左侧 | 跳过的部分内的任何捕获括号都会产生
/a|ab/.exec("abc")
返回结果
/((a)|(ab))((c)|(bc))/.exec("abc")
返回数组
["abc", "a", "a", undefined, "bc", undefined, "bc"]
而不是
["abc", "ab", undefined, "ab", "c", "c", undefined]
尝试这两个替代项的顺序独立于 direction 的值。
连续的
得到的
The abstract operation RepeatMatcher takes arguments m (一个
如果
比较
/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"]
上述选择点顺序可用于编写一个计算两个数(以一元记法表示)最大公约数的正则表达式。以下示例计算 10 和 15 的 gcd:
"aaaaaaaaaa,aaaaaaaaaaaaaaa".replace(/^(a+)\1*,\1+$/, "$1")
它返回一元记法的 gcd
The abstract operation EmptyMatcher takes no arguments and returns 一个
The abstract operation MatchTwoAlternatives takes arguments m1 (一个
The abstract operation MatchSequence takes arguments m1 (一个
The syntax-directed operation CompileAssertion takes argument regexpRecord (一个
本节在
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")
查找一个 a,其后不是立即跟随某个正数 n 个 a、一个 b、另外 n 个 a(由第一个 \2 指定)以及一个 c。第二个 \2 位于负向先行断言之外,因此它与
["baaabaac", "ba", undefined, "abaac"]
The abstract operation IsWordChar takes arguments regexpRecord (一个
The syntax-directed operation CompileQuantifier takes no arguments and returns 一个具有字段 [[Min]](一个非负
The syntax-directed operation CompileQuantifierPrefix takes no arguments and returns 一个具有字段 [[Min]](一个非负
The syntax-directed operation CompileAtom takes arguments regexpRecord (一个
本节在
It is defined piecewise over the following productions:
形式为 ( ) 的括号既用于将 \ 后跟一个非零十进制数)、在替换 String 中引用,或者作为正则表达式匹配 (?: )。
形式为 \ 后跟非零十进制数 n 的转义序列,匹配第 nth 组捕获括号(
The abstract operation CharacterSetMatcher takes arguments regexpRecord (一个
The abstract operation BackreferenceMatcher takes arguments regexpRecord (一个
The abstract operation Canonicalize takes arguments regexpRecord (一个
CaseFolding.txt 为 ch 提供了简单或公共大小写折叠映射,返回将该映射应用于 ch 的结果。在 ß(U+00DF LATIN SMALL LETTER SHARP S)映射为 ss 或 SS。然而,它可能将基本拉丁块之外的码点映射到其中的码点——例如,ſ(U+017F LATIN SMALL LETTER LONG S)大小写折叠为 s(U+0073 LATIN SMALL LETTER S),而 K(U+212A KELVIN SIGN)大小写折叠为 k(U+006B LATIN SMALL LETTER K)。包含这些码点的 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 匹配。此外,基本拉丁块之外的码点不会被映射到其中的码点,因此诸如 /[a-z]/i 匹配。
The abstract operation UpdateModifiers takes arguments regexpRecord (一个
The syntax-directed operation CompileCharacterClass takes argument regexpRecord (一个
The syntax-directed operation CompileToCharSet takes argument regexpRecord (一个
本节在
It is defined piecewise over the following productions:
即使模式忽略大小写,范围两端的大小写在确定哪些字符属于该范围时仍然重要。因此,例如,模式 /[E-F]/i 只匹配字母 E、F、e 和 f,而模式 /[E-f]/i 匹配 Unicode 基本拉丁块中的所有大写和小写字母,以及符号 [, \, ], ^, _ 和 `。
- 字符可以按字面量处理,也可以表示一个范围。如果它是
- U+002D (HYPHEN-MINUS) 的 \b、\B 和反向引用除外。在 \b 表示退格字符,而 \B 和反向引用会引发错误。在
0、1、2、3、4、5、6、7、8 和 9 的十元素 General_Category, s) 是 PropertyValueAliases.txt 中列出的 General_Category (gc) 属性的 Unicode 属性值或属性值别名,则结果通常会由两个或更多范围组成。当 UnicodeSets 是
The abstract operation CharacterRange takes arguments charSet (一个
The abstract operation HasEitherUnicodeFlag takes argument regexpRecord (一个
The abstract operation WordCharacters takes argument regexpRecord (一个 \b、\B、\w 和 \W 的目的而被视为“单词字符”的字符。 It performs the following steps when called:
The abstract operation AllCharacters takes argument regexpRecord (一个
The abstract operation MaybeSimpleCaseFolding takes arguments regexpRecord (一个 CaseFolding.txt 中的 Simple Case Folding(
The abstract operation CharacterComplement takes arguments regexpRecord (一个
The abstract operation UnicodeMatchProperty takes arguments regexpRecord (一个
实现必须支持
例如,Script_Extensions(scx(属性别名)是有效的,但 script_extensions 或 Scx 不是。
列出的属性构成了 UTS18 RL1.2 要求内容的超集。
这些表中条目的拼写(包括大小写)与 Unicode 字符数据库中的文件 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 abstract operation UnicodeMatchPropertyValue takes arguments p (
PropertyValueAliases.txt 中列出的 Unicode 属性 p 的属性值或属性值别名。实现必须支持 PropertyValueAliases.txt 中针对
例如,Xpeo 和 Old_Persian 是有效的 Script_Extensions 值,但 xpeo 和 Old Persian 不是。
此算法不同于 UAX44 中列出的符号值匹配规则:大小写、Is 前缀。
The syntax-directed operation CompileClassSetString takes argument regexpRecord (一个
The abstract operation RegExpCreate takes arguments pattern (一个
The abstract operation RegExpAlloc takes argument newTarget (一个
The abstract operation RegExpInitialize takes arguments obj (一个 Object,), pattern (一个
The abstract operation ParsePattern takes arguments patternText (一个 Unicode 码点序列,), u (一个 Boolean,), and v (一个 Boolean,) and returns 一个 Parse Node 或一个由
本节在
It performs the following steps when called:
RegExp
extends 子句的值。意图继承指定 RegExp 行为的子类super 调用,以创建并初始化带有必要内部槽的子类实例。此函数在被调用时执行以下步骤:
如果使用
RegExp
此函数返回 str 的一个副本,其中在正则表达式
它在被调用时执行以下步骤:
\0 字符转义或诸如 \1 的 \c 之后的上下文具有相同作用。尽管名称相似,RegExp.escape 并不执行相似的动作。前者转义模式以表示为字符串,而此函数转义字符串以表示在模式内部。
The abstract operation EncodeForRegExpEscape takes argument cp (一个码点,) and returns 一个 String. 它返回一个表示用于匹配 cp 的
RegExp.prototype 的初始值是
此属性具有特性 { [[Writable]]:
RegExp[%Symbol.species%] 是一个
此函数的
RegExp 原型方法通常使用其
RegExp 原型对象:
RegExp 原型对象自身没有
RegExp.prototype.constructor 的初始值是
此方法在 string 中搜索正则表达式模式的一次出现,并返回一个包含匹配结果的 Array;如果 string 未匹配,则返回
它在被调用时执行以下步骤:
RegExp.prototype.dotAll 是一个
RegExp.prototype.flags 是一个
The abstract operation RegExpHasFlag takes arguments regexp (一个
RegExp.prototype.global 是一个
RegExp.prototype.hasIndices 是一个
RegExp.prototype.ignoreCase 是一个
此方法在被调用时执行以下步骤:
此方法的
此方法在被调用时执行以下步骤:
此方法的
RegExp.prototype.multiline 是一个
此方法在被调用时执行以下步骤:
此方法的
此方法在被调用时执行以下步骤:
此方法的
执行搜索时会忽略此 RegExp 对象的
RegExp.prototype.source 是一个
The abstract operation EscapeRegExpPattern takes arguments pattern (一个 String,) and flags (一个 String,) and returns 一个 String. It performs the following steps when called:
/ 或任何 /// 后跟 flags 将被解析为 尽管名称相似,RegExp.escape 和 EscapeRegExpPattern 并不执行相似的动作。前者转义字符串以表示在模式内部,而此函数转义模式以表示为字符串。
此方法返回一个 Array,其中存储了将 string 转换为 String 后所得结果的各个
/a*?/[Symbol.split]("ab") 求值为数组 ["a", "b"],而 /a*/[Symbol.split]("ab") 求值为数组 ["","b"]。)
如果 string 是(或转换为)空 String,则结果取决于正则表达式是否能匹配空 String。如果能,则结果数组不包含任何元素。否则,结果数组包含一个元素,即空 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 是一个
此方法在被调用时执行以下步骤:
返回的 String 具有
RegExp.prototype.unicode 是一个
RegExp.prototype.unicodeSets 是一个
The abstract operation RegExpExec takes arguments regexp (一个 Object,) and str (一个 String,) and returns 要么是一个包含 Object 或
如果未找到可调用的
The abstract operation RegExpBuiltinExec takes arguments regexp (一个已初始化的 RegExp 实例,) and str (一个 String,) and returns 要么是一个包含 Array
The abstract operation AdvanceStringIndex takes arguments str (a String), index (a non-negative integer), and unicode (a Boolean) and returns a non-negative integer. It performs the following steps when called:
The abstract operation GetStringIndex takes arguments str (一个 String,) and codePointIndex (一个非负
Match Record 是一个
Match Record 具有
| 字段名 | 值 | 含义 |
|---|---|---|
| [[StartIndex]] | 一个非负 |
从字符串开头到匹配开始处(包含)的码元数量。 |
| [[EndIndex]] | 一个 |
从字符串开头到匹配结束处(不包含)的码元数量。 |
The abstract operation GetMatchString takes arguments str (一个 String,) and match (一个
The abstract operation GetMatchIndexPair takes arguments str (一个 String,) and match (一个
The abstract operation MakeMatchIndicesIndexPairArray takes arguments str (一个 String,), indices (一个由
RegExp 实例是
RegExp 实例还具有以下属性:
RegExp String Iterator 是一个对象,表示对某个特定 String 实例对象进行的特定迭代,并与某个特定 RegExp 实例对象进行匹配。RegExp String Iterator 对象没有具名
The abstract operation CreateRegExpStringIterator takes arguments regexp (一个 Object,), str (一个 String,), global (一个 Boolean,), and fullUnicode (一个 Boolean,) and returns 一个 Object. It performs the following steps when called:
%RegExpStringIteratorPrototype% 对象:
此属性具有特性 { [[Writable]]:
| 内部槽 | 类型 | 描述 |
|---|---|---|
| [[IteratingRegExp]] | 一个 Object | 用于迭代的正则表达式。 |
| [[IteratedString]] | 一个 String | 正在被迭代的 String 值。 |
| [[Global]] | 一个 Boolean | 指示 [[IteratingRegExp]] 是否为 global。 |
| [[Unicode]] | 一个 Boolean | 指示 [[IteratingRegExp]] 是否处于 Unicode 模式。 |
| [[Done]] | 一个 Boolean | 指示迭代是否完成。 |