ES6-正则
昨天,复习了正则的基本知识,今天学习ES6新增的正则的知识,做一个总结笔记,大家可以先看4,5对应的方法然后再从头看,话不多说直接上:
1.RegExp构造函数的区别
2.新增的修饰符
3.新增属性
4.字符串对应的正则方法(API文档)
5.RegExp对应的方法(API文档)
直接开始上手:
、
1.RegExp构造函数的区别
1 //ES5中也有相应的正则构造函数,首先复习一下ES5的RegExp构造函数,创建方法 2 var demo = /abc/g; //字面量 3 var demo = new RegExp('abc','i'); //构造函数创建,第一个为字符串,第二个参数为修饰符 4 var demo = new RegExp(/abc/i); //直接构造函数创建,参数为正则表达式,返回的也是一个正则表达式 5 6 7 //ES6新增区别 8 //我们知道,我们的正则表达式可能修饰符需要经常的更换,想通过一个构造函数,重新更换一个原来的正则表达式的修饰符,ES5不提供简便的操作,但是新增的ES6提供了一个新的方法,就是增多了一个RegExp构造函数的第二个参数(放置修饰字符),可以更改修饰符 9 10 var demo1 = new RegExp('abc', 'i'); 11 console.log(demo1); // /abc/i 12 var demo2 = new RegExp(demo1, 'ig'); 13 console.log(demo2); // /abc/gi 14
2.新增的修饰符
2.1 u修饰符
//u表示Unicode编码字符,大家知道,一般的字符基本都是UTF-8或者UTF-16编码的,基本都是2字节或者1个字节存储,我之前写的字符的表示就说明过这一点,那么超过Unicode编码\uFFFF的时候,那么就需要有两个字节表示,js不能更好的处理,因此,为了解决这一个问题,ES6新增的u修饰符,可以正常处理4个字节的UTF-16编码,总之,处理Unicode编码字符加上u就行了。
1 //(1) . 字符(除了换行外其他所有的单个字符,不包括编码大于\uFFFF) 2 //加上u修饰符,就可以解决 . 字符无法识别编码大于\uFFFF的字符了 3 var s = '