es6(二)

三 . 正则扩展:
  1.构造函数的扩展

let regex  = new Regex('xyz','i');
let regex2  = new Regex(/xyz/i);
//test() 方法用于检测一个字符串是否匹配某个模式,如果字符串中含有匹配的文本,则返回 true,否则返回 false。 console.log(regex.test(
"xyz123"),regex2.test("xyz123")); //true,true //es6允许第二个参数传两个标识,还可以后面接第二个参数的情况,第二个参 //数会覆盖之前的 let regex3 = new Regex(/xyz/ig,"i"); console.LOG(regex3.flags); // i

  2. 全局匹配g和y:

let s='bbb_bb_b';
let a1=/b+/g;
let a2=/b+/y;
//exec() 方法用于检索字符串中的正则表达式的匹配。
//该函数返回一个数组,其中存放匹配的结果。如果未找到匹配,则返回值为 //null。
console.log('one',a1.exec(s),a2.exec(s)); 
console.log('two',a1.exec(s),a2.exec(s)); 
/*运行结果:
one ["bbb", index: 0, input: "bbb_bb_b"] ["bbb", index: 0, input: "bbb_bb_b"]
 two ["bb", index: 4, input: "bbb_bb_b"] null 
说明:g从上一次匹配的位置继续寻找,不强调第一个就匹配上
y:也是全局匹配,但是要求必须在上次匹配紧跟着的下个字符就要匹配上*/

  3.unicode匹配符u :

console.log('u测试1',/^uD83D/.test('uD83DuDC2A'));
console.log('u测试2',/^uD83D/u.test('uD83DuDC2A'));
//u测试1 true
//u测试2 false
/*
没加u,会把这4个字节当作两个字符
加了u,把这4个字节当作一个字符
*/
console.log('u测试1',/u{61}/.test('a'));//a的unicode编码是61
console.log('u测试1',/u{61}/u.test('a'));
//false ,true
/*
加u才能识别是unicode编码
*/
原文地址:https://www.cnblogs.com/dongtianqi/p/7909860.html