.jsp文件里身份证号怎么验证啊

要求判断必须是15位或18位数字,js代码怎么写呀?我这么写有问题么?为什么不好使呀?图片说明

改为onblur,keyup没输入一个数字就替换一次,你肯定不可能一次keyup就全部输入所有的15或者18位数字了

     function isCardNo(card)  
    {  
       // 身份证号码为15位或者18位,15位时全为数字,18位前17位为数字,最后一位是校验位,可能为数字或字符X  
       var reg = /(^\d{15}|\d{18}$)|(^\d{17}([x\d])$)/i;  
       if(reg.test(card) === false)  
       {  
           alert("身份证输入不合法");  
           return  false;  
       }  
    }  

另外最好出错给出提示,而不是粗暴地删除,这样用户体验不好。

不能写在keyup里面,要写在onblur里面

错误是这样的图片说明

keyup, paste, cut这三个事件都指向同一个处理函数