一、RegExp构造函数
1、允许使用正则表达式作为参数的同时允许第二个参数(第二个修饰符会覆盖第一个修饰符)
二、'u'修饰符
1、用来正确处理大于uFFFF
的Unicode字符。也就是说,会正确处理四个字节的UTF-16编码。
2、ES6新增了使用大括号表示Unicode字符,这种表示法在正则表达式中必须加上u
修饰符,才能识别。
3、使用u
修饰符后,所有量词都会正确识别大于码点大于0xFFFF
的Unicode字符
三、'y'修饰符
1、y修饰符的作用与g
修饰符类似,也是全局匹配,后一次匹配都从上一次匹配成功的下一个位置开始。
2、g
修饰符只要剩余位置中存在匹配就可,而y
修饰符确保匹配必须从剩余的第一个位置开始
四、.sticky属性
1、判断是否使用了'y'修饰符
五、.flags属性
1、返回正则表达式的修饰符
补充:
ES6将字符串对象的match()
、replace()
、search()
和split()
这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]