零宽断言

本文介绍了零宽断言这一正则表达式技巧,用于设定匹配位置的前后条件。通过实例代码解析了如何使用零宽断言来匹配特定前后字符,如匹配'ab'后面必须跟大写字母的情况。同时,文章还提及了密码强度验证中的正向先行断言,说明了其确保匹配项后必须有特定字符的规则。
摘要由CSDN通过智能技术生成

1.正则表达式之零宽断言
作用是给指定位置添加一个限定条件,用来规定此位置之前或者之后的字符必须满足限定条件才能使正则中的字表达式匹配成功。
实例代码一:

var str="abZW863";
var reg=/ab(?=[A-Z])/;
console.log(str.match(reg));

在以上代码中,正则表达式的语义是:匹配后面跟随任意一个大写字母的字符串"ab"。最终匹配结果是"ab",因为零宽断言"(?=[A-Z])"并不匹配任何字符,只是用来规定当前位置的后面必须是一个大写字母。

实例代码二:

var str="abZW863";
var reg=/ab(?[A-Z])/;
console.log(str.match(reg));

以上代码中,正则表达式的语义是:匹配后面不跟随任意一个大写字母的字符串"ab"。正则表达式没能匹配任何字符,因为在字符串中,ab的后面跟随有大写字母。

2.密码强度
假设密码验证做如下规则定义:

最短6位,最长16位 {6,16}
必须包含1个数字
必须包含2个小写字母
必须包含2个大写字母
必须包含1个特殊字符
var pattern = /^.*(?=.{6,16})(?=.*\d)(?=.*[A-Z]{2,})(?=.*[a-z]{2,})(?=.*[!@#$%^&*?\(\)]).*$/;

1.字符类 .
字符类 . 表示除换行符和其他Unicode行终止符之外的任意字符。

2.正向先行断言 (?= )
在符号“(?

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值