正则表达式第一次为true第二次为false的原因

test()
exec()

会从 lastIndex 位置开始检索

两种方案:

  1. 不使用 g
  2. 重置 lastIndex
const pattern = /^\d+$/
function validateNumber(value) {
  const result = pattern.test(value)
  console.log(pattern .lastIndex)
  pattern.lastIndex = 0
  return result
}
posted @ 2022-08-31 15:47  月半流云  阅读(34)  评论(0编辑  收藏  举报