常用的验证数字之正则
天天倒弄正则表达式,天天倒弄验证,各种验证,基本都用了一遍。最简单莫过于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; }