ECMAScript | Шаблон базовой многоязычной плоскости (BMP pattern)

ECMAScript | Шаблон базовой многоязычной плоскости (BMP pattern)

Basic Multilingual Plane (BMP) — Базовая многоязычная плоскость.

Встречается в подразделе «Pattern Semantics» у раздела «RegExp (Regular Expression) Objects«.

В общем нужно знать то, что есть два вида написания шаблона регулярного выражения в JavaScript:

  • BMP pattern
  • Unicode pattern
Примечание 2

Например, рассмотрите шаблон, выраженный в исходном тексте как один символ не-BMP U+1D11E (МУЗЫКАЛЬНЫЙ СИМВОЛ G CLEF). Интерпретируемый как шаблон Unicode, это будет Список одного элемента (символа), состоящий из единственной кодовой точки 0x1D11E. Однако, интерпретируемый как шаблон BMP, он сначала закодирован в UTF-16 для создания двухэлементного Списка, состоящего из кодовых единиц 0xD834 и 0xDD1E.

Шаблоны передаются в конструктор RegExp как строковые значения ECMAScript, в которых символы, отличные от BMP, имеют кодировку UTF-16. Например, односимвольный шаблон MUSICAL SYMBOL G CLEF, выраженный как строковое значение, представляет собой строку (String) длиной 2, элементами которой были кодовые единицы 0xD834 и 0xDD1E. Таким образом, для обработки её как шаблона BMP, состоящего из двух символов шаблона, не требуется дальнейшего перевода строки. Однако для обработки его как шаблона Unicode необходимо использовать UTF16SurrogatePairToCodePoint при создании Списка, единственным элементом которого является один символ шаблона, кодовая точка U+1D11E.

Реализация может фактически не выполнять такие преобразования в UTF-16 или из UTF-16, но семантика этой спецификации требует, чтобы результат сопоставления с образцом был таким, как если бы такие преобразования были выполнены.

 

Информационные ссылки

Предыдущий раздел — Шаблоны

ECMAScript | Семантики Шаблона (Pattern Semantics) | Регулярные выражения (Regular Expression)

Стандарт ECMAScript — Раздел «Pattern Semantics» — https://tc39.es/ecma262/#sec-pattern-semantics