ES6知识点整理之----正则表达式扩展

Posted adhehe

tags:

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

1、如果RegExp构造函数第一个参数是一个正则对象,那么可以使用第二个参数指定修饰符。而且,返回的正则表达式会忽略原有的正则表达式的修饰符,只使用新指定的修饰符。

new RegExp(/abc/ig, ‘i‘).flags
// "i"

2、字符串对象共有 4 个方法,可以使用正则表达式:match()replace()search()split()。ES6 将这 4 个方法,在语言内部全部调用RegExp的实例方法,从而做到所有与正则相关的方法,全都定义在RegExp对象上。

String.prototype.match 调用 RegExp.prototype[Symbol.match]
String.prototype.replace 调用 RegExp.prototype[Symbol.replace]
String.prototype.search 调用 RegExp.prototype[Symbol.search]
String.prototype.split 调用 RegExp.prototype[Symbol.split]

3、ES6 对正则表达式添加了u修饰符,含义为“Unicode 模式”,用来正确处理大于uFFFF的 Unicode 字符。

4、RegExp.prototype.unicode 属性:正则实例对象新增unicode属性,表示是否设置了u修饰符。

5、ES6 还为正则表达式添加了y修饰符,叫做“粘连”(sticky)修饰符。与g修饰符类似,但它确保匹配必须从剩余的第一个位置开始,这也就是“粘连”的涵义。实际上,y修饰符号隐含了头部匹配的标志^,y修饰符的设计本意,就是让头部匹配的标志^在全局匹配中都有效。单单一个y修饰符对match方法,只能返回第一个匹配,必须与g修饰符联用,才能返回所有匹配。

6、RegExp.prototype.sticky 属性:实例对象新增sticky属性,表示是否设置了y修饰符

7、RegExp.prototype.flags 属性:返回正则表达式的修饰符

8、ES2018 引入了s修饰符,使得.可以匹配任意单个字符,这被称为dotAll模式,即点(dot)代表一切字符。

9、正则表达式还引入了一个dotAll属性,返回一个布尔值,表示该正则表达式是否处在dotAll模式

10、ES2018 引入了一种新的类的写法p{...}P{...},允许正则表达式匹配符合 Unicode 某种属性的所有字符。

11、ES2018 引入了具名组匹配(Named Capture Groups),允许为每一个组匹配指定一个名字,既便于阅读代码,又便于引用。

12、String.prototype.matchAll:可以一次性取出所有匹配。不过,它返回的是一个遍历器(Iterator),而不是数组。

 

以上是关于ES6知识点整理之----正则表达式扩展的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript ES6 - 正则表达式扩展

ES6学习笔记之正则扩展

ES6学习笔记之正则扩展

ES6知识点整理之----对象扩展

ES6知识点整理之----数组扩展----API新增

ES6知识点整理之----Generator----概述