Q: Lonely surrogates and unicode regexps

André Bargull andre.bargull at udo.edu
Wed Jan 28 03:57:37 PST 2015

> On Wed, Jan 28, 2015 at 11:36 AM, Marja Hölttä <marja at chromium.org  <https://mail.mozilla.org/listinfo/es-discuss>> wrote:
> >/  The ES6 unicode regexp spec is not very clear regarding what should happen
> />/  if the regexp or the matched string contains lonely surrogates (a lead
> />/  surrogate without a trail, or a trail without a lead). For example, for the
> />/  . operator, the relevant parts of the spec speak about characters:
> />/
> /
> ​Just a bit of terminology.
> The term "character" is overloaded, so Unicode provides the unambiguous
> term "code point". For example, U+0378​ is not (currently) an encoded
> character according to Unicode, but it would certainly be a terrible idea
> to disregard it, or not match it. It is a reserved code point that may be
> assigned as an encoded character in the future. So both U+D83D and U+0378
> are not characters.
> If a ES spec uses the term "character" instead of "code point", then at
> some point in the text it needs to disambiguate what is meant.

"character" is defined in 21.2.2 Pattern Semantics [1]:

> In the context of describing the behaviour of a BMP pattern “character” means a single 16-bit 
> Unicode BMP code point. In the context of describing the behaviour of a Unicode pattern 
> “character” means a UTF-16 encoded code point.

[1] https://people.mozilla.org/~jorendorff/es6-draft.html#sec-pattern-semantics
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.mozilla.org/pipermail/es-discuss/attachments/20150128/267f4dc4/attachment.html>

More information about the es-discuss mailing list