es6的正则扩展

es5中 使用正则的构造函数的两种方法

let regex = new RegExp('xyz','i')
let regex2 = new RegExp(/xyz/i)
console.log(regex.test('xyz2222'),regex2.test('xyz2222'))

es6新增了一种方法

let regex3=new RegExp(/xyz/ig,'g')//es6允许第二个参数是修饰符,但是结果是后面的修饰符会覆盖前面的正则表达式所用的修饰符
console.log(regex3.flags)

在这里插入图片描述
es6新增的修饰符y

let s='bbb_bb_b'
let a1=/b+/g;//g修饰符会忽略前面的_
let a2=/b+/y;//y修饰符不会忽略
console.log('one',a1.exec(s),a2.exec(s));
console.log('two',a1.exec(s),a2.exec(s));

在这里插入图片描述
判断当前正则是否开启了y修饰符模式sticky

console.log(a1.sticky,a2.sticky)

在这里插入图片描述
es6新增的修饰符u(如果你处理的字符串中正则表达式中有大于两个字节的字符,一定要加u

console.log('u-1',/^\uD83D/.test('\uD83D\uDC2A'))//将这四个字节当成两个字符
console.log('u-2',/^\uD83D/u.test('\uD83D\uDC2A'))//当成一个字符

console.log(/\u{61}/.test('a'))
console.log(/\u{61}/u.test('a'))

在这里插入图片描述

console.log(`\u{20BB7}`)
let s='?'
console.log('u',/^.$/.test(s))
console.log('u-2',/^.$/u.test(s))
console.log('test',/?{2}/.test('??'))
console.log('test',/?{2}/u.test('??'))

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值