1、RegExp构造函数

在ES5中,RegExp构造函数的参数有两种情况。第一种情况是参数是字符串,这时第二个参数表示正则表达式的修饰符;第二种情况是,参数是一个正则表示式,这时会返回一个原有正则表达式的拷贝。但是,ES5不允许此时使用第二个参数,添加修饰符,否则会报错

var regex = new RegExp('xyz','i');
//等价于
var regex = /xyz/i; var regex = new RegExp(/xyz/i);
//等价于
var regex = /xyz/i; var regex = new RegExp(/xyz/,'i'); //报错

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

2、字符串的正则表达式

字符串对象共有4个方法,可以使用正则表达式:match()、replace()、search()和split()。

3、U修饰符

ES6对正则表达式添加了u修饰符,含义为“Unicode模式”,用来正确处理大于\uFFFF的Unicode字符。也就是说,会正确处理四个字节的UTF-16编码。

4、y修饰符

除了u修饰符,ES6还为正则表达式添加了y修饰符,叫做“粘连(sticky)”修饰符。y修饰符的作用域g修饰符类似,也是全局匹配,后一次匹配都从上一次匹配成功的下一个位置开始。不同之处在于g修饰符只要剩余位置中存在匹配就可以,而y修饰符确保匹配必须从剩余的第一个位置开始,这也是“粘连”的涵义。

5、sticky属性

与y修饰符相匹配,ES6的正则对象多了sticky属性,表示是否设置了y修饰符。

6、flags属性

ES6位正则表达式新增了flags属性,会返回正则表达式的修饰符。

7、RegExp.escape()

字符串必须转义,才能作为正则模式。

8、s修饰符:dotAll模式

很多时候我们希望匹配的是任意单个字符,这时有一个提案,就是引入/s修饰符,使得 . 可以匹配任意单个字符。这被称为dotAll模式,即点(dot)代表一切字符。所以,正则表达式还引入了一个dotAll属性,返回一个布尔值,表示该正则表达式是否处在dotAll模式中。

最新文章

  1. swift_初始化器的使用
  2. java静态和动态代理原理
  3. NET WebApi OWIN 实现 OAuth 2.0
  4. Windows下Nginx的安装与配置(转)
  5. UVa 11464 - Even Parity
  6. HDU 3351
  7. tp其他功能
  8. Cocos2D-X2.2.3学习笔记3(内存管理)
  9. SpringMVC实现垂直搜索引擎
  10. 【一天一道LeetCode】#136. Single Number
  11. [LOJ3084][GXOI/GZOI2019]宝牌一大堆——DP
  12. 目标检测中的mAP
  13. ubuntu14.04 VIM for python 一键配置
  14. ABPIAbpSession
  15. jstack实战死循环与死锁学习笔记
  16. JavaScript权威指南——跳转语句
  17. c3p0 ComboPooledDataSource无法识别的问题
  18. 怎样删除Weblogic Domain?
  19. 1.rabbitmq 集群版安装及使用nginx进行四层负载均衡设置
  20. hdu 1348 Wall (凸包模板)

热门文章

  1. css实现渐变
  2. AC自动机模板题
  3. HihoCoder - 1513 bitset处理五维偏序
  4. [转] vagrant系列(2):使用Vagrantfile实现集成预安装
  5. genkins的报错排查
  6. win 10安装应用程序提示Error 1317的解决方法
  7. 使用chart.js時取消懸浮在圖表頂部的'undefined'標識
  8. 手写JDBC - 数据库、驱动信息存储在配置文件
  9. 安装 VMware Tools
  10. egg