js中数据类型判断

/**********************一。验证类*****************************/
 //对象是否存在
 function isObj(str)
 {
  if(str==null||typeof(str)=='undefined')
   return false;
  return true;
 }
 //去除字符串中的空格
 function strTrim(str)
 {
  if(!isObj(str))
   return 'undefined';
  str=str.replace(/^/s+|/s+$/g,'');
  return str;
 }
/**********************1数字验证******************************/
//1。1整数
 //整数或者为空
 function isIntOrNull(str){
  if(!isObj(str))//判断对象是否存在
   return 'undefined';
  return isNull(str)||isInt(str);
 }
 //必需是整数
 function isInt(str){
  var reg = /^(-|/+)?/d+$/ ;
  return reg.test(str);
 }
//1.2小数
 //小数或者为空
 function isFloatOrNull(str){
  if(!isObj(str))//判断对象是否存在
   return 'undefined';
  if(isInt(str))
   return true;
  return isNull(str)||isFloat(str);
 }
 //必需是小数
 function isFloat(str){
  if(isInt(str))
   return true;
  var reg = /^(-|/+)?/d+/./d*$/;
  return reg.test(str);
 }
//1.3数字大小判断
 //数i不能大于数y
 function iMinY(i , y){
  if(!isObj(i)||!isObj(y))//判断对象是否存在
   return 'undefined';
  if(!(isFloat(i)&&isFloat(y)))
   return '比较的必须是数字类型'
  if(i<=y)
   return true;
  return false;
 }
 //数i不能小于数y
 function iMaxY(i , y){
  if(!isObj(i)||!isObj(y))//判断对象是否存在
   return 'undefined';
  if(!(isFloat(i)&&isFloat(y)))
   return '比较的必须是数字类型'
  if(i>=y)
   return true;
  return false;
 }
/**********************1数字验证******************************/
/**********************2时间类验证******************************/
//2.1 短时间,形如 (13:04:06)  
 function shortTimeCheck(str)
 {
  if(!isObj(str))//判断对象是否存在
   return 'undefined';
  var a = str.match(/^(/d{1,2})(:)?(/d{1,2})/2(/d{1,2})$/);  
  //var a = str.match(/^/d{1,2}:/d{1,2}:/d{1,2}$/);  
        if (a == null)
  {
   alert("输入的参数不是时间格式");
   return false;
  }  
        if (a[1]>24 || a[3]>60 || a[4]>60)  
        {  
   alert("时间格式不对");  
   return false  
        }  
        return true;  
 }
//2.2 短日期,形如 (2003-12-05)  
 function shorDateCheck(str)
 {
  var r = str.match(/^(/d{1,4})(-|//)(/d{1,2})/2(/d{1,2})$/);   
  if(r==null)
   return false;   
  var d= new Date(r[1], r[3]-1, r[4]);   
  return (d.getFullYear()==r[1]&&(d.getMonth()+1)==r[3]&&d.getDate()==r[4]);  
 }
//2.3 长时间,形如 (2003-12-05 13:04:06)  
 function longDateCheck(str)
 {
  var reg = /^(/d{1,4})(-|//)(/d{1,2})/2(/d{1,2}) (/d{1,2}):(/d{1,2}):(/d{1,2})$/;   
        var r = str.match(reg);   
        if(r==null)
   return false;   
        var d= new Date(r[1], r[3]-1,r[4],r[5],r[6],r[7]);   
        return (d.getFullYear()==r[1]&&(d.getMonth()+1)==r[3]&&d.getDate()==r[4]&&d.getHours()==r[5]&&d.getMinutes()==r[6]&&d.getSeconds()==r[7]);  
 }
//2.4 只有年和月。形如(2003-05,或者2003-5)  
//2.5 只有小时和分钟,形如(12:03) 
/**********************2时间类验证******************************/
/**********************3表单类验证******************************/
//3.1 所有的表单的值都不能为空,对象内容是否为空
 function isNull(str)
 {
  if(!isObj(str))
   return 'undefined';
  //alert("*"+str+"*");
  str=strTrim(str);
  //alert("*"+str+"*");
  if(str.length>0)
   return false;
  return true;
 }
//3.2 多行文本框的值不能为空。  
//3.3 多行文本框的值不能超过sMaxStrleng  
 function sMaxStrleng(str,len)
 {
  if(!isObj(str))
   return 'undefined';
  str=strTrim(str);
  if(str.length>len)
   return false;
  return true;
 }
//3.4 多行文本框的值不能少于sMixStrleng 
 function sMixStrleng(str,len)
 {
  if(!isObj(str))
   return 'undefined';
  str=strTrim(str);
  if(str.length<len)
   return false;
  return true;
 }
//3.5 判断单选框是否选择。  
//3.6 判断复选框是否选择.  
//3.7 复选框的全选,多选,全不选,反选  
//3.8 文件上传过程中判断文件类型  
 function upLoadFileType(str)
 {
  return str.match(/^(.*)(/.)(.{1,8})$/)[3];
 }
/**********************3表单类验证******************************/
/**********************4字符类验证******************************/
  
//4.1 判断字符全部由a-Z或者是A-Z的字字母组成  
 function isLetter(str)
 {
  if(!isObj(str))
   return 'undefined';
  str=strTrim(str);
  var reg = /^[a-zA-Z]+$/g;
  return reg.test(str)
 }
 
//4.2 判断字符由字母和数字组成。  
    function isLetterOrNum(str)
 {
  if(!isObj(str))
   return 'undefined';
  str=strTrim(str);
  var reg = /^[0-9a-zA-Z]+$/g;
  return reg.test(str)
 }
//4.3 判断字符由字母和数字,下划线,点号组成.且开头的只能是下划线和字母  
 function isLegalityName(str)
 {
  if(!isObj(str))
   return 'undefined';
  str=strTrim(str);
  var reg = /^([a-zA-z_]{1})([A-Za-z0-9_/.]*)$/g;
  return reg.test(str)
 }
     // /^([a-zA-z_]{1})([/w]*)$/g.test(str)  
//4.4 字符串替换函数.Replace();  
/**********************4字符类验证******************************/
/**********************5浏览器类******************************/
//5.1 判断浏览器的类型  
 function getIEType()
 {
       return window.navigator.appName;  
 }
//5.2 判断ie的版本  
 function getIEVersion()
 {
       return window.navigator.appVersion;
 }
//5.3 判断客户端的分辨率  
 function getResolvingPower()
 {
       return window.screen.height+"*"+window.screen.width; 
 }
/**********************5浏览器类******************************/
/**********************6综合类******************************/
//6.1 email的判断。 
 function isMail(mail)  
    {  
  return(new RegExp(/^/w+((-/w+)|(/./w+))*/@[A-Za-z0-9]+((/.|-)[A-Za-z0-9]+)*/.[A-Za-z0-9]+$/).test(mail));  
    }  
//6.2 手机号码的验证  
 function isCellPhoneNum(num)
 {
  if(isNaN(num)) 
  {
   alert("输入的不是数字!");
   return false;
  }  
        var len = num.length;  
  if(len!=11)
  {
   return false;
  }
  return true;
 }
//6.3 身份证的验证  
 function isIdCardNo(num)  
 {  
  if(isNaN(num)) 
  {
   alert("输入的不是数字!");
   return false;
  }  
        var len = num.length;   
        if (len == 15)  
   re = new RegExp(/^(/d{6})()?(/d{2})(/d{2})(/d{2})(/d{3})$/);  
        else if(len == 18)  
          re = new RegExp(/^(/d{6})()?(/d{4})(/d{2})(/d{2})(/d{3})(/d)$/);  
        else 
  {
    alert("输入的数字位数不对!"); 
    return false;
  }  
        var a = num.match(re);  
        if (a != null)  
        {  
   if (len==15)  
   {  
    var D = new Date("19"+a[3]+"/"+a[4]+"/"+a[5]);  
    var B = D.getYear()==a[3]&&(D.getMonth()+1)==a[4]&&D.getDate()==a[5];  
   }  
   else  
   {  
    var D = new Date(a[3]+"/"+a[4]+"/"+a[5]);  
    var B = D.getFullYear()==a[3]&&(D.getMonth()+1)==a[4]&&D.getDate()==a[5];  
   }  
   if (!B) 
   {
    alert("输入的身份证号 "+ a[0] +" 里出生日期不对!"); 
    return false;
   }  
        }  
        return true;  
 }  
 //身份证严格验证  
 function IdCardNoCheck(sId){  
   var aCity={11:"北京",12:"天津",13:"河北",14:"山西",15:"内蒙古",21:"辽宁",22:"吉林",23:"黑龙江",31:"上海",32:"江苏",33:"浙江",34:"安徽",35:"福建",36:"江西",37:"山东",41:"河南",42:"湖北",43:"湖南",44:"广东",45:"广西",46:"海南",50:"重庆",51:"四川",52:"贵州",53:"云南",54:"西藏",61:"陕西",62:"甘肃",63:"青海",64:"宁夏",65:"新疆",71:"台湾",81:"香港",82:"澳门",91:"国外"} 
   var iSum=0  
   var info=""  
   if(!/^/d{17}(/d|x)$/i.test(sId))
    return false;  
   sId=sId.replace(/x$/i,"a");  
   if(aCity[parseInt(sId.substr(0,2))]==null)return "Error:非法地区";  
   sBirthday=sId.substr(6,4)+"-"+Number(sId.substr(10,2))+"-"+Number(sId.substr(12,2));  
   var d=new Date(sBirthday.replace(/-/g,"/"))  
   if(sBirthday!=(d.getFullYear()+"-"+ (d.getMonth()+1) + "-" + d.getDate()))return "Error:非法生日";  
   for(var i = 17;i>=0;i --) iSum += (Math.pow(2,i) % 11) * parseInt(sId.charAt(17 - i),11)  
   if(iSum%11!=1)return "Error:非法证号";  
   //aCity[parseInt(sId.substr(0,2))]+","+sBirthday+","+(sId.substr(16,1)%2?"男":"女") 
   return  true;
 }  
//6.4电话号码的验证  
 function PhoneCheck(str){  
  var reg=/(^[0-9]{3,4}/-[0-9]{3,8}$)|(^[0-9]{3,8}$)|(^/([0-9]{3,4}/)[0-9]{3,8}$)|(^0{0,1}13[0-9]{9}$)/  
  alert(reg.test(str));  
 }  
//6.5验证IP地址 
 function isip(s){  
  var check=function(v){try{return (v<=255 && v>=0)}catch(x){return false}};  
  var re=s.split(".")  
  return (re.length==4)?(check(re[0]) && check(re[1]) && check(re[2]) && check(re[3])):false  
 } 
/**********************6综合类******************************/
//回车键换为tab  
 function enterToTab()  
 {  
  if(event.srcElement.type != 'button' && event.srcElement.type != 'textarea' 
     && event.keyCode == 13)  
  {  
   event.keyCode = 9;  
  }  
 }  
//具有在输入非数字字符不回显的效果,即对非数字字符的输入不作反应。  
 function numbersonly(field,event){  
  var key,keychar;  
  if(window.event){  
   key = window.event.keyCode;  
  }  
  else if (event){  
   key = event.which;  
  }  
  else{  
   return true  ;
  }  
  keychar = String.fromCharCode(key);  
  if((key == null)||(key == 0)||(key == 8)||(key == 9)||(key == 13)||(key == 27)){  
   return true;  
  }  
  else if(("0123456789.").indexOf(keychar)>-1){  
   window.status = "";  
   return true;  
  }  
  else {  
   window.status = "Field excepts numbers only";  
   return false;  
  }  
 }  
//
 function txtOnKeyPress()
 {
  var code=String.fromCharCode(window.event.keyCode)+'';
  alert(code);
  var temp =eval("isInt('"+code+"')");
  window.event.returnValue = temp;
 }

 

转载于:https://my.oschina.net/abulo/blog/264698

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值