此为代码片段
for(i=0; i<bday.length; i++){
var bnum = bday.substring(i,i+1)
if(!(bnum < 9 || bnum > 0)){
alert("日期无效");
document.userfrm.bday.focus();
return false;
}其中第三行if(!(bnum < 9 || bnum > 0))怎样控制了输入的数字必须是0-9之间的包括0和9?
为啥不写成bnum>='0'&&bnum<='9';最主要的是上边那个9和0是数字还是字符;
希望说的详细一点。本人比较笨!!!

解决方案 »

  1.   

    bnum  有2中可能  数字和字符如果是数字的话 (bnum < 9 || bnum > 0) 返回的可定时true,因为有一个必为true如果不是数字的话 (bnum < 9 || bnum > 0)  返回的是false,再加上前面的! 就判断了
      

  2.   

    就你现在写的代码看,应该bnum应该是字符,所以我觉得应该先把bnum转换成数字
    var bnum =parseInt(bday.substring(i,i+1)),
    这样再来判断是否为0-9
      

  3.   

    (!(bnum < 9 || bnum > 0))bnum < 9 意思为 bnum转换为类型之后和9做比较 那么能和数字作比较的肯定是数字
    bnum>0 意思和上一个基本相同 只不过把bnum=9的时候刨除了 以防等于9的时候漏选这样验证就很严密了 bnum必须是小于9 或者 大于0的数字