javascript - js test正则表达式遇到一个诡异的问题
本文介绍了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;
}
解决方案
course1='1', course2='a',这种情况不会进入你的方法。
应该是||的关系。
代码修改如下:
if((!reg.test(course1))||(!reg.test(course2))){
showToast.msg('套餐只能输入非零正整数');
return false;
}
这篇关于javascript - js test正则表达式遇到一个诡异的问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文