es6 语法 (正则扩展)

mac2022-06-30  22

{ //es5中 let regex = new RegExp('xyz', 'i'); let regex2 = new RegExp(/xyz/i); console.log(regex.test('xyz123'), regex2.test('xyz123')); // true,true

//es6中,flags是新增的,获取正则对象修饰符 let regex3 = new RegExp(/xyz/ig, 'i'); console.log(regex3.flags); // i 后一个覆盖前面的}//es5中常见修饰符是g、i;es6中新增 y,u//exec() 方法用于检索字符串中的正则表达式的匹配。{ let s = 'bbb_bb_b'; let a1 = /b /g; //g忽略_从上一次匹配的位置继续寻找 let a2 = /b /y; //y不忽略。匹配不上 console.log('one', a1.exec(s), a2.exec(s)); //bbb bbb console.log('two', a1.exec(s), a2.exec(s)); //bb null console.log('three', a1.exec(s), a2.exec(s)); //b bbb //新增sticky,判断是否又y修饰符 console.log(a1.sticky, a2.sticky); //false true} { console.log('u-1', /^\uD83D/.test('\uD83D\uDC2A')); //true 分隔了\uD83D 和 \uDC2A console.log('u-1', /^\uD83D/u.test('\uD83D\uDC2A')); //false 把\uD83D\uDC2A 当成一体了 console.log(/\u{61}/.test('a')); //false console.log(/\u{61}/u.test('a'));//true 加上u才能被识别 console.log(`\u{20BB7}`); //? let s = '?'; console.log('u',/^.$/.test(s)); //false console.log('u-2',/^.$/u.test(s)); //true 字符串大于两个字符需要加u才能识别 console.log('test',/?{2}/.test('??')); //false console.log('test',/?{2}/u.test('??')); //true}

更多专业前端知识,请上 【猿2048】www.mk2048.com
最新回复(0)