首页  >  问答  >  正文

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 天前713

全部回复(1)我来回复

  • 淡淡烟草味

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

    course1='1', course2='a',这种情况不会进入你的方法。
    应该是||的关系。
    代码修改如下:

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

    回复
    0
  • 取消回复