JavaScript 正则环视
JS正则环视断言:正向前瞻(?=)/负向前瞻(?!)/正向后顾(?<=ES2018)/负向后顾(?<!)、密码强度验证(必须包含大小写字母+数字+特殊字符)、金额千分位格式化正则、零宽断言不消耗字符 · 难度:入门 · +10XP
JavaScript 正则环视断言 —— 零宽匹配
环视(Lookaround)是正则表达式的高级功能——它检查某个位置的前面或后面是否符合条件,但不消耗字符。非常适合"前面有X的Y"或"后面没有Z的X"这类条件。
四种环视
// 正向前瞻(?=):后面必须跟着...
'100元'.match(/\d+(?=元)/); // ['100'] 匹配"元"前面的数字
// 负向前瞻(?!); 后面不能跟着...
'100克'.match(/\d+(?!元)/); // ['100'] 匹配不是"元"前面的数字
// 正向后顾(?<=):前面必须有...
'¥100'.match(/(?<=¥)\d+/); // ['100'] 匹配"¥"后面的数字
// 负向后顾(?
实战:密码强度验证
// 必须同时包含大写、小写、数字、特殊字符,8位以上
const pwdRegex = /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[!@#$%^&*]).{8,}$/;
动手练习
- 基础练习:用环视匹配所有后面跟着"%"的数字。
- 进阶应用:用正则验证密码强度(至少8位+大小写+数字+特殊字符)。
- 项目实战:用环视实现金额格式化——每三位加逗号(1000000→1,000,000)。