ES6的正则扩展

Posted lujieting

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ES6的正则扩展相关的知识,希望对你有一定的参考价值。

{
// #构造函数#
let regex = new RegExp(‘xyz‘, ‘i‘); //第一个参数是字符串,第二个是修饰符
let regex2 = new RegExp(/xyz/i); //第一个参数是正则表达式,不接受第二个参数,否则会报错
console.log(regex.test(‘xyz123‘), regex2.test(‘xyz123‘));//true true
console.log(regex.test(‘xyZ123‘), regex2.test(‘xyZ123‘));

let regex3 = new RegExp(/abc/ig, ‘i‘);
console.log(regex3.flags);//i
//原有正则对象的修饰符是ig,它会被第二个参数i覆盖

}

// 字符串对象的4个使用正则表达式的方法: match(),replace(),search(),split()这四个方法全部调用RegExp的实例的方法。

{
let regex = new RegExp(‘xyz‘, ‘ig‘);
console.log(regex.test(‘xyz0XYZ1xyz2‘), regex.exec(‘xyz0XYZ1xyz2‘));
}

{
// y修饰符
let s = ‘bbbb_bbb_bb_b‘;
var a1 = /b+/g;
var a2 = /b+/y;

console.log(a1.exec(s), a2.exec(s)); // ["bbbb"],["bbbb"]
console.log(a1.exec(s), a2.exec(s)); // ["bbb"],null

console.log(a1.sticky, a2.sticky); //表示是否开启了粘连模式
}

{
console.log(‘u修饰符‘,/^uD83D/.test(‘uD83DuDC2A‘)); // true
console.log(‘u修饰符‘,/^uD83D/u.test(‘uD83DuDC2A‘)); // false
// 大括号表示Unicode字符,只有加上u才能识别
console.log(/u{61}/.test(‘a‘)); // false
console.log(/u{61}/u.test(‘a‘)); // true
console.log(/u{20BB7}/u.test(‘??‘)); // true
// 点(.)字符不能识别码点大于0xFFFF的Unicode字符,必须加上u修饰符。
let s = ‘??‘;
console.log(‘大于0xFFFF的Unicode字符‘,/^.$/.test(s)); // false
console.log(‘使用u字符‘,/^.$/u.test(s)); // true

// 使用u修饰符后,所有量词都会正确识别大于码点大于0xFFFF的Unicode字符。
console.log(‘量词‘,/a{2}/.test(‘aa‘)); // true
console.log(‘量词‘,/a{2}/u.test(‘aa‘)); // true
console.log(‘量词‘,/??{2}/.test(‘????‘)); // false
console.log(‘量词‘,/??{2}/u.test(‘????‘)); // true
}

{
// #正则表达式中,点(.)是一个特殊字符,代表任意的单个字符,但是行终止符(line terminator character)除外
// U+000A 换行符( )
// U+000D 回车符( )
// U+2028 行分隔符(line separator)
// U+2029 段分隔符(paragraph separator)
// 只是一个提案目前还不支持
// let reg=/test.go/s;
// console.log(reg.test(‘test go‘));
// console.log(reg.test(‘test go‘));
console.log(‘s变通方法‘,/foo.bar/.test(‘foo bar‘));
console.log(‘s变通方法‘,/foo[^]bar/.test(‘foo bar‘));
}

以上是关于ES6的正则扩展的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript ES6 - 正则表达式扩展

ES6正则表达式扩展

ES6正则表达式扩展

ES6正则扩展

ES6 学习 ---正则的扩展

js-正则表达式ES6--正则的扩展