Unicode code point escapes in regex literals - Jav

2019-01-28 04:17发布

问题:

Can this regex literal syntax having Unicode escape sequence syntax,

var regpat= /^[\u0041-\u005A\u0061-\u007A\.\' \-]{2,15}/;

be written using Unicode code point escape syntax(as shown below)?

var regpat= /^[\u{41}-\u{5A}\u{61}-\u{7A}\u{1F4A9}\.\' \-]{2,15}/;

Note: Unicode code point escapes is used to simplify ES5-compatible surrogate pair syntax representing code point value more than FFFF

回答1:

Yes, according to the spec this is now a valid escape sequence, however in order to enable support you must include the new u flag in the Regex definition:

var regpat = /^[\u{41}-\u{5A}\u{61}-\u{7A}\u{1F4A9}\.\' \-]{2,15}/u;
console.log(regpat.test("\u{41}\u{61}}"))

Babel REPL