Skip to content

toRegExp('v') (unicodeSets flag) gives unusable result if input codepoints contain astrals #46

Description

@lionel-rowe

When v is supplied as a flag, it should use full Unicode mode, but instead it uses UTF-16 mode:

import cps from 'npm:@unicode/unicode-17.0.0/Block/Aegean_Numbers/code-points.js'
import regenerate from 'npm:regenerate'

for (const flags of ['', 'u', 'v']) {
    const re = regenerate(cps).toRegExp(flags)
    console.log(re, re.test(String.fromCodePoint(cps[0])))
}
// /\uD800[\uDD00-\uDD3F]/ true
// /[\u{10100}-\u{1013F}]/u true
// /\uD800[\uDD00-\uDD3F]/v false

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions