首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >JavaScript 正则匹配中的 lastIndex 陷阱:为什么 test 和 exec 会交替返回 true 和 false

JavaScript 正则匹配中的 lastIndex 陷阱:为什么 test 和 exec 会交替返回 true 和 false

作者头像
超哥前端记录
发布于 2026-09-30 08:59:03
发布于 2026-09-30 08:59:03
250
举报
概述
用同一个正则对象反复测试不同字符串,明明字符串都匹配,却出现一次 true 一次 false 的诡异现象,这是不少人在表单校验、循环过滤或批量替换时踩过的坑。问题大多不在正则模式本身,而是带了 g 或 y 标志的正则对象会维护 lastIndex 状态。调用 test 和 exec 时,匹配成功会更新这个值,下一次从新位置继续找,匹配失败才把它重置为 0。于是跨字符串复用同一实例时就容易出现交替结

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档