ES6(二)正则y、u修饰符

正则对象

/**
 * y 修饰符的作用与 g 修饰符类似,也是全局匹配,后一次匹配都从上一次匹配成功的下一个位置开始。
 * 不同之处在于,g 修饰符只要剩余位置中存在匹配就可,而 y 修饰符确保匹配必须从剩余的第一个位置开始
 **/
let str1 = 'bbb_bb_b'
let reg1 = /b+/g
let reg2 = /b+/y
console.log('1', reg1.exec(str1), reg2.exec(str1))
console.log('2', reg1.exec(str1), reg2.exec(str1))
// 正则对象是否开启了y 修饰符
console.log(reg1.sticky, reg2.sticky)


/**
 * ES5不支持四个字节的 UTF-16 编码,会将其识别为两个字符
 * u 用来正确处理大于 \uFFFF 的Unicode字符
 * **/
// false
console.log(/\u{61}/.test('a'))
// 加 u 修饰符才会被识别为Unicode码
// true
console.log(/\u{61}/u.test('a'))

console.log(`\u{20bb7}`)
let str1 = '𠮷'
// false
console.log(/^.$/.test(str1))
// true
console.log(/^.$/u.test(str1))
// true
console.log(/𠮷{2}/u.test('𠮷𠮷'))

 

posted @ 2019-09-07 23:27  ronle  阅读(343)  评论(0编辑  收藏  举报