`

转 js中数据类型判断(转)

阅读更多

转载自:
http://www.cnblogs.com/yjheimi/articles/2133513.html

/**********************一。验证类*****************************/
 //对象是否存在
 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;
 }
分享到:
评论

相关推荐

    json一键转换为易语言自定义数据类型1

    数据类型 ' + className + ', 公开, 以下对象内自动设置的基本类型值不为标准值,仅作参考,请自行判断取用\n'; // 遍历 JSON 对象并生成数据类型 // ... } ``` 这个 `getAll` 函数是转换过程的核心,它遍历 JSON ...

    js 数据类型转换总结笔记

    在JavaScript中,数据类型转换是编程过程中不可或缺的一部分。由于JavaScript是一种动态类型语言,变量的数据类型在运行时可以改变,这给编程带来了灵活性,但也可能导致一些意外的错误。本篇文章将深入探讨...

    对象数据类型判断.js

    一个可以直接使用的判断数据类型的js文件,里面整理了比较全面的判断各种数据类型分方法,前端的小伙伴看过来

    JS 使用 typeof 获取数据类型

    这篇博客“JS 使用 typeof 获取数据类型”深入探讨了如何利用`typeof`来识别和处理不同类型的JavaScript数据。 首先,`typeof`返回的是一个字符串,这个字符串描述了变量的类型。它适用于原始数据类型(如`...

    浅谈js数据类型判断与数组判断

    总的来说,JavaScript中的数据类型判断和数组判断是编程中常见的操作,需要根据不同的场景选择合适的判断方式。了解这些基本概念和技巧,能帮助开发者写出更健壮、更可靠的代码。在进行面试或日常开发时,熟练掌握...

    js引入方式,三种输出方式,一种输入方式,变量,基本数据类型,复合数据类型,数据分析,判断数据类型,算数运算符

    js中的基本数据类型有六种:Number(数字数据类型)、String(字符串数据类型)、Boolean(布尔数据类型)、undefined(未定义数据类型)、null(空值)。Number类型包括int(整数)和float(浮点数),还有NaN(not...

    判断数据类型的方法.html

    JS中判断数据类型的4种方法及其实例:typeof、instanceof、constructor、Object.prototype.toString.call();还有判断数据类型的函数

    JS数据类型判断的几种常用方法

    JavaScript中的数据类型判断是编程中常见的操作,尤其是在处理复杂逻辑时。本文将详细介绍几种常用的JS数据类型判断方法。 首先,`typeof`运算符是最常用的数据类型判断方式。它可以直接通过`typeof(表达式)`或`...

    JS数据类型分类及常用判断方法

    在探索数据类型判断方法的时候我们需要知道JS中有哪些数据类型: 我们可以把JS中数据类型分为两类: 1.基本数据类型:Undefined、Null、Boolean、Number、String、Symbol(es6中新增) 2.引用类型(复杂数据类型):...

    JavaScript之数据类型

    本篇将深入探讨JavaScript中的数据类型,包括基本数据类型、引用数据类型以及ES6引入的新的数据类型。 1. **基本数据类型** JavaScript中的基本数据类型包括: - **Undefined**:表示变量未定义或值不存在。 - *...

    js 判断数据类型的几种方法

    本文将详细介绍并比较五种常见的判断JavaScript数据类型的方法:`typeof`、`instanceof`、`constructor`、`prototype`以及jQuery提供的`$.type()`/`jquery.type()`。 1. `typeof`: `typeof`操作符用于获取变量的...

    头歌教学实践平台 Web前端开发基础 JavaScript 学习手册二:JS 数据类型

    本教程“头歌教学实践平台 Web前端开发基础 JavaScript 学习手册二:JS 数据类型”深入浅出地介绍了JavaScript中的各种数据类型,这对于理解代码逻辑和优化性能至关重要。 在JavaScript中,数据类型主要分为两大类...

    常用数据类型使用转换详解

    本文将深入探讨在各种编程语言中,如Python、Java、C++、JavaScript等,如何使用和转换常见数据类型,帮助开发者更好地理解和应用这些知识。 1. **基本数据类型**: - **整型(Integer)**: 包括无符号整型和有...

    二进制判断数据类型

    二进制文件上传分类,需要的下载, 通常对用户上传的图片需要保存到数据库中。...另一种是将图片以二进制数据流的形式直接写入数据库字段中。以下为具体方法:  一、保存图片的上传路径到数据库:

    JavaScript判断数据类型有几种方法及区别介绍

    在JavaScript中,正确地识别和判断变量的数据类型是编程中不可或缺的一部分。本文将详细介绍JavaScript中判断数据类型的五种主要方法,以及它们之间的区别。 一、`typeof`操作符 `typeof`是一个操作符,用于判断...

    JS通用数据类型验证

    从给定的文件信息来看,主要涉及的是JavaScript中对数据类型的验证方法,特别是对字符串、数字类型(包括自然数、整数、浮点数)的验证。以下是对这些知识点的详细解析: ### JS通用数据类型验证 #### 字符串长度...

    JS表单验证 JS校验代码 JS数据类型校验

    总结,JS表单验证和数据类型校验是Web开发中的基础技能,通过`validateForm.js`这样的工具,我们可以更高效地实现表单的统一验证,提高用户体验,并确保数据的准确性。同时,了解并熟练运用这些技术,对于提升Web...

    几个字符串遍历判断,数据类型合法性,取值范围判断

    在编程领域,字符串遍历、数据类型合法性检查以及取值范围判断是常见的操作,尤其在进行数据处理和验证时显得尤为重要。以下是对这些知识点的详细解释: **字符串遍历** 字符串遍历是程序中处理文本数据的基础。在...

    javascript数据类型 -JavaScript优势简介及数据类型

    - **布尔(Boolean)**:在逻辑判断中使用true和false。 - **全局对象(Global)**:JavaScript中的全局变量和函数。 - **Date对象**:处理日期和时间。 - **Number对象**:处理数值相关的操作。 - **Windows和...

    JavaScript中判断数据类型的方法总结

    typeof typeof用的比较多的时候,是判断某个全局变量在不在,假如某个页面定义了一个全局变量。假如你做如下判断: //haorooms是全局变量 ...此外,typeof还可以进行数据类型的判断!如下: var haorooms=string; c

Global site tag (gtag.js) - Google Analytics