循环种使用正则表达式判断一定不要/g

176 阅读1分钟

问题描述:明明手机号都是正常的,为何会提示呢?

Snipaste_2022-08-19_15-37-00.png

原因在于循环中使用了正则校验 /g

//手机号码
if(souceData.personPhones&&souceData.personPhones.length>0){
  //万恶之源
  //let re = /^1[3456789]\d{9}$/g     //就是/g的锅
  //end
  let re = /^1[3456789]\d{9}$/
  for(let i = 0; i< souceData.personPhones.length;i++){
    if(!re.test(souceData.personPhones[i].phone)){
      souceData.personPhones[i].show = false
      souceData.personPhones[i].noPhone = false
      this.$set(souceData.personPhones[i],'errPhone',true)
    }
  }
}