ECMAScript 6学习笔记之----正则的扩展

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

RegExp构造函数

RegExp构造函数的参数有两种情况。

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

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

第二种情况是,参数是一个正则表示式,这时会返回一个原有正则表达式的拷贝。

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

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

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

-----i

字符串的正则方法

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

y,g修饰符

ES6 还为正则表达式添加了y修饰符,叫做“粘连”(sticky)修饰符。

y修饰符的作用与g修饰符类似,也是全局匹配,后一次匹配都从上一次匹配成功的下一个位置开始。不同之处在于,g修饰符只要剩余位置中存在匹配就可,而y修饰符确保匹配必须从剩余的第一个位置开始,这也就是“粘连”的涵义。


var s = 'aaa_aa_a';
var r1 = /a+/g;
var r2 = /a+/y;


print(r1.exec(s)) // ["aaa"]
print(r2.exec(s)) // ["aaa"]

print(r1.exec(s))// ["aa"]
print(r2.exec(s)) // null

-----aaa
-----aaa
-----aa
-----null

猜你喜欢

转载自blog.csdn.net/Pengjx2014/article/details/89435294
今日推荐