Fork me on GitHub

常用的验证数字之正则

 天天倒弄正则表达式,天天倒弄验证,各种验证,基本都用了一遍。最简单莫过于isNaN,常用的莫过于用户名、邮箱、密码、身份证的验证等等。

 

 1、就算isNaN简单,也想说说,毕竟之前基本没用到过。isNaN——是javascript中的函数,是用来判断是否为非数字的,若是则返回true,反之是false。

else if(isNaN($("#matchTicket").attr("value"))){
     alert('比赛券必须为数字!');
     $("#matchTicket").select();
     return false; 
}

 

2、一般注册各大网站的用户名,经常可以看到用户名输入框后面会有提示“多少个字符的限制”,例如淘宝就是“5-25个字符,1个中文两个字符”,而但你没填写用户名,旁边又会有“不能为空”的红色文字提示,这些都是验证。

/**
 * 是否为可用注册用户名
 * 以字字母开头可带_以及字母和数字的组合6到20位
 */
function isRegisterUserName(s){
    var patrn = /^[a-zA-Z]{1}([a-zA-Z0-9]|[_]){5,16}$/;
    if (!patrn.exec(s)) 
        return false;
    return true;
}

而这个就是我们比赛系统后台所使用到的。判断输入是否为空,你可以直接写成判断 $("#startTime").attr("value")==""

else if($("#startTime").attr("value")==""){
                   alert('开始日期不能为空!');
                   return false;          
}

 

不过也可以直接在js中写一个验证的函数——isEmpty

/**
 * 是否为空
 */
function isEmpty(ui){
    return (ui == null || trim(ui) == "");
}

 

不过貌似差点漏了主要想讲的,就是当你在一个输入框中,它本身就是以换行来隔开的,而又需要去验证它输入的数字,故而就会出现,当你换行输入第二个数字时,弹出“请输入数字”。其中出现这个bug的原理,这个无需多讲。

故而我需要写一个“数字加换行”的校验,就这样

/**
* 数字加换行的校验
*/
function  isNaNandline(s){
   var regx = /[^\n\d\r]+/gi;
   if(!regx.test(s)){
    return false; }
   return true;
}

这样用上去

 else if(isNaNandline($("#allow").attr("value"))){
                    alert('白名单必须为数字!');
                   return false; 
             }

 

posted on 2014-03-12 10:48  雨为我停  阅读(376)  评论(0编辑  收藏  举报