es6 正则表达式扩展

1.Regex构造函数:

当第一个参数为正则表达式时,允许传递正则表达式修饰符作为第二个参数。并且,返回的正则表达式会忽略原有的修饰符,使用指定的修饰符。

2.修饰符:
  1. u修饰符:用来正确处理大于\uFFFF的unicode字符。
  2. y修饰符:与g修饰符类似,也是全局匹配,后一次匹配都从上一次匹配成功的下一个位置开始。不同之处在于,g修饰符只要剩余位置中存在匹配就可,而y修饰符确保匹配必须从剩余的第一个位置开始。
  3. s修饰符(dotAll模式):使得.可以匹配任意单个字符(包括换行符和回车符)。
3.属性:
  1. sticky属性:表示是否设置了y修饰符。
  2. flags属性:返回正则表达式的修饰符。
4.先行断言和后行断言:(括号中的部分不计入结果)
  1. 先行断言: x只有在y前面才匹配,写法:/x(?=y)/
  2. 先行否定断言:x只有不在y前面才匹配,写法:/x(?!y)/
  3. 后行断言: x只有在y后面才匹配,写法:/(?<=y)x/
  4. 后行否定断言:x只有不在y后面才匹配,写法:/(?
5.unicode属性类:

允许正则表达式匹配符合 Unicode 某种属性的所有字符,写法:\p{…}和\P{…}
\P{…}是\p{…}的反向匹配,即匹配不满足条件的字符。

const regexGreekSymbol = /\p{Script=Greek}/u;
regexGreekSymbol.test(‘π’) // true

6.具名组匹配:

允许为每一个组匹配指定一个名字,既便于阅读代码,又便于引用。

const RE_DATE = /(?\d{4})-(?\d{2})-(?\d{2})/;
const matchObj = RE_DATE.exec(‘1999-12-31’);
const year = matchObj.groups.year; // 1999
const month = matchObj.groups.month; // 12
const day = matchObj.groups.day; // 31

7.String.prototype.matchAll:

一次性取出所有匹配。不过,它返回的是一个遍历器(Iterator),而不是数组。可以用for…of循环取出。
遍历器转为数组是非常简单的,使用…运算符和Array.from方法就可以了。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值