Javascript中,正则表达式起用 `g` 标志位后,这个正则居然是有状态的

const reg = /^[0-9]+/g
reg.test('123') // expect true actual true
reg.test('123') // expect true actual false
reg.test('123') // expect true actual true
reg.test('123') // expect true actual false

构建一个正则保存为变量 reg, 连续对同一个字符串字面量 "123" 调用 test 方法,第二次和第四次的结果都是不符合预期的 false,令人震惊

posted @ 2023-12-28 15:48  Laggage  阅读(11)  评论(0编辑  收藏  举报