ES9 正则扩展-反向断言

本文介绍了断言在JavaScript正则表达式中的应用,通过正向断言和反向断言提高匹配效率,避免不必要的搜索,增强代码可读性。举例说明了它们的区别和适用场景,如精确匹配数字、字母等字符组合。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

断言的概念:

断言是用来判断一个字符是否出现在字符串的某个位置,但不包括该字符本身。

断言的作用:

1. 可以提高正则表达式的匹配效率,减少不必要的匹配。

2. 可以提高代码的可读性。

代码实现

1. 正向断言

// 声明一个字符串
const str = "word5211314世界大爆炸777轰炸大楼";

// 正向断言
const s = /\d+(?=轰)/;
const result = s.exec(str);
console.log(result);

我们可以看出这里匹配到的是数字777,原因在于通过正向断言去判断匹配,在轰这个字符左边的数字,注意一个点(这里指的是相邻),不会匹配到前面的5211314;

2. 反向断言

// 反向断言
const d = /(?<=炸)\d+/;
const result2 = d.exec(str);
console.log(result2);

这里通过反向断言判断,去匹配与炸这个字符串相邻的右边的数字字符

3. 正向断言和反向断言相结合

// 正向断言和反向断言结合使用
const e = /(?<=\d)\D+(?=\d)/;
const result3 = e.exec(str);
console.log(result3);

该判断匹配的为左边是数字,右边是数字的字符串,也就是“世界大爆炸”;

总结:

1. 正向断言和反向断言的区别

正向断言:(?=pattern)

反向断言:(?<=pattern)

正向断言和反向断言的区别在于,前者是从字符串的开头开始匹配,后者是从字符串的结尾开始匹配。

2. 正向断言和反向断言的使用场景:

1. 防止匹配到不期望的字符。

2. 提高匹配效率。

3. 提高代码的可读性。

4. 实现一些复杂的匹配逻辑。

例如:匹配字符串中的数字,字母,汉字,以及一些特殊符号,但不包括数字、字母、汉字、特殊符号本身。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值