码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2018-09-13 22:46:56      阅读:164      评论:0      收藏:0      [点我收藏+]

标签:一个   知识点整理   指定   调用   ...   布尔值   hal   split()   正则表达式   

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知识点整理之----正则表达式扩展

标签:一个   知识点整理   指定   调用   ...   布尔值   hal   split()   正则表达式   

原文地址:https://www.cnblogs.com/adhehe/p/9643266.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有 京ICP备13008772号-2
迷上了代码!