ES6——正则扩展

y修饰符


y和g 都是全局匹配


区别


g是从上一次匹配的位置开始,继续寻找,直到找到为止

y,必须是紧跟着的下一个位置匹配成功,才能输出。


实例

{
    let s = "bbb_bb_b";

    let a1 = /b+/g;
    let a2 = /b+/y;

    console.log('one',a1.exec(s), a2.exec(s));

    console.log('two',a1.exec(s), a2.exec(s));
}



运行结果

第一次(都匹配成功)

one ["bbb", index: 0, input: "bbb_bb_b"]  ["bbb", index: 0, input: "bbb_bb_b"]


第二次

two ["bb", index: 4, input: "bbb_bb_b"] null


g:忽略 _ 下划线,继续寻找;

y:因为紧跟着的是_ 下划线,不符合b+匹配规则,所以匹配失败。




u修饰符(主要用于识别Unicode字符)


字符识别为一项

let str = '\uD83D\uDC2A';

var a1 = /^\uD83D/;
var a2 = /^\uD83D/u;


console.log('normal',a1.test(str));  // normal true
console.log('u',a2.test(str));       // u false


使用注意

识别Unicode编码,必须加上u。例如,/\u{61}/u

如果需要匹配的字符大于2个字节必须使用u修饰符才能匹配成功。


修正观念

1).并不能匹配任何字符,它只限定小于2个字节的字符

2).不能识别换行符、段落符等等。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值