【ES6】ES6学习五:正则的扩展

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_33237207/article/details/89533442

一、RegExp构造函数

在 ES5 中,RegExp构造函数的参数有下面两种情况:

情况1:第一个参数是字符串,这时第二个参数表示正则表达式的修饰符。

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

情况2:参数是一个正则表示式,这时会返回一个原有正则表达式的拷贝。ES5 不允许此时使用第二个参数添加修饰符,否则会报错。

var regex = new RegExp(/xyz/i);
// 等价于
var regex = /xyz/i;

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

ES6 改变了这种行为。如果RegExp构造函数第一个参数是一个正则对象,那么可以使用第二个参数指定修饰符。

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

二、unicode属性:表示是否设置了u修饰符。

const r1 = /hello/;
const r2 = /hello/u;

r1.unicode // false
r2.unicode // true

三、sticky属性:表示是否设置了y修饰符。

var r = /hello\d/y;
r.sticky // true

四、flags属性:会返回正则表达式的修饰符。

// ES5 的 source 属性:返回正则表达式的正文
/abc/ig.source
// "abc"

// ES6 的 flags 属性:返回正则表达式的修饰符
/abc/ig.flags
// 'gi'

猜你喜欢

转载自blog.csdn.net/qq_33237207/article/details/89533442
今日推荐