首頁  >  問答  >  主體

javascript - js test正規表示式遇到一個詭異的問題

    let reg=/^$|^[1-9]\d*$/;
    if(!reg.test(course1)){
      showToast.msg('套餐1只能输入非零正整数');
      return false;
    }
    if(!reg.test(course2)){
      showToast.msg('套餐2只能输入非零正整数');
      return false;
    }
    

上面這樣寫正規可以起作用,寫成下面這樣正則就失效了,輸入字母什麼的也能通過驗證!

if((!reg.test(course1))&&(!reg.test(course2))){
  showToast.msg('套餐只能输入非零正整数');
  return false;
}
伊谢尔伦伊谢尔伦2663 天前710

全部回覆(1)我來回復

  • 淡淡烟草味

    淡淡烟草味2017-07-05 10:53:10

    course1='1', course2='a',這種情況不會進入你的方法。
    應該是||的關係。
    程式碼修改如下:

    if((!reg.test(course1))||(!reg.test(course2))){
      showToast.msg('套餐只能输入非零正整数');
      return false;
    }

    回覆
    0
  • 取消回覆