正则前瞻(lookahead)和后顾(lookbehind)
请用JavaScript示例说明正则前瞻(?=pattern)和后顾(?<=pattern)的用法,包括正向和负向断言。
回答
苦行僧
console.log('index.html style.css app.js'.match(/\w+(?=\.html)/g));
console.log('item1 item2 word'.match(/\w+(?=\d)/g));
console.log('index.html style.css app.js'.match(/\w+(?!\.js)\b\w*/g));
console.log('价格: $100, $200, ¥50'.match(/(?<=\$)\d+/g));
console.log('$100 200 ¥50'.match(/(?<!\$)\d+/g));
const strongPwd = /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d).{8,}$/;
console.log(strongPwd.test('Abc12345'));
特点:断言不消耗字符(零宽度),只检查位置条件。