问题
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
来源:https://stackoverflow.com/questions/34391229/unicode-code-point-escapes-in-regex-literals-javascript