zoukankan      html  css  js  c++  java
  • 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),而不是数组。

  • 相关阅读:
    cocos2D-X 4.0 build
    Boost Download
    史上最全的CSS hack
    web前端js中ES6的规范写法
    爬虫最终杀手锏 --- PhantomJS 详解(附案例)
    移动端300ms延迟的解决方法
    js动态生成html元素并为元素追加属性
    css中border-sizing属性详解和应用
    纯CSS实现Tab切换
    阻止移动端浏览器点击图片会预览的几种方法
  • 原文地址:https://www.cnblogs.com/adhehe/p/9643266.html
Copyright © 2011-2022 走看看