javascript数据类型验证方法


Posted in Javascript onDecember 31, 2015

最近对javascript数据类型的验证又有了一个新的认识,原来可以判断得这么简单又如此全面。
我们自定义了isString,isNumber ,isDate ,isError ,isRegExp ,isBoolean ,isNull ,isUndefined ,isObject等方法。现在将自己定义的javascript数据类型验证函数及测试集展示:

<!DOCTYPE html> 
<html> 
  <head> 
    <meta charset="utf-8"> 
    <title></title> 
  </head> 
  <body> 
     
  </body> 
<script type="text/javascript"> 
//isString 
//isNumber 
//isDate 
//isError 
//isRegExp 
//直接利用和数据类型来判断 
[].forEach.call(['String','Number','Date','Error','RegExp'],function(name){ 
  this['is'+name]=function(obj){ 
    return toString.call(obj)==='[object '+name+']'; 
  }; 
}); 
//isBoolean 
//true和false需要考虑在内 
Object.prototype.isBoolean=function(obj){ 
  return obj===true||obj===false||toString.call(obj)==='[object Boolean]'; 
}; 
//isNull 
//未找到所指向对象 
Object.prototype.isNull=function(obj){ 
  return obj===null; 
}; 
//isUndefined 
//定义了但是未赋值 
Object.prototype.isUndefined=function(obj){ 
  return obj===void 0; 
}; 
//isObject 
//函数和数组都是对象 
Object.prototype.isObject=function(obj){ 
  var type = typeof obj; 
  return type === 'function' || type === 'object' && !!obj; 
}; 
 
//test 
//isString 
var str="iamstring"; 
var a=isString(str); 
console.log(a);//true 
 
//isNumber 
var b=isNumber(a); 
console.log(b);//false 
 
//isNumber 
var num=4; 
var c=isNumber(num); 
console.log(c);//true 
 
//isRegExp 
var reg=/^[1-9]/; 
var d=isRegExp(reg); 
console.log(d);//true 
 
//isDate 
var date=new Date(); 
var e=isDate(date); 
console.log(e);//true 
 
//isBoolean 
var bool=false; 
var f=isBoolean(bool); 
console.log(f);//true 
 
//isNull 
var nul=document.getElementById("div02"); 
var g=isNull(nul); 
console.log(g);//true 
 
//isUndefined 
var undef; 
var h=isUndefined(undef); 
console.log(h);//true 
 
//isObject 
var obj={"1":"1","2":"2"}; 
var i=isObject(obj); 
console.log(i);//true 
 
</script> 
</html>

以下主要是对判断javascript的数据类型进行了详细的介绍,分为六种数据类型,需要的朋友可以过来参考下,希望对大家有所帮助
1、判断是否为数组类型
代码如下:

<STRONG><script type="text/javascript"> 
//<![CDATA[ 
var a=[0]; 
document.write(isArray(a),'<br/>'); 
function isArray(obj){ 
return (typeof obj=='object')&&obj.constructor==Array; 
} 
//]]> 
</script></STRONG>

2 判断是否为字符串类型
代码如下:

<script type="text/javascript"> 
//<![CDATA[ 
document.write(isString('test'),'<br/>'); 
document.write(isString(10),'<br/>'); 
function isString(str){ 
return (typeof str=='string')&&str.constructor==String; 
} 
//]]> 
</script>

3 判断是否为数值类型
代码如下:

<script type="text/javascript"> 
//<![CDATA[ 
document.write(isNumber('test'),'<br/>'); 
document.write(isNumber(10),'<br/>'); 
function isNumber(obj){ 
return (typeof obj=='number')&&obj.constructor==Number; 
} 
//]]> 
</script>

4 判断是否为日期类型
代码如下:

<script type="text/javascript"> 
//<![CDATA[ 
document.write(isDate(new Date()),'<br/>'); 
document.write(isDate(10),'<br/>'); 
function isDate(obj){ 
return (typeof obj=='object')&&obj.constructor==Date; 
} 
//]]> 
</script>

5 判断是否为函数
代码如下:

<script type="text/javascript"> 
//<![CDATA[ 
document.write(isFunction(function test(){}),'<br/>'); 
document.write(isFunction(10),'<br/>'); 
function isFunction(obj){ 
return (typeof obj=='function')&&obj.constructor==Function; 
} 
//]]> 
</script>

6 判断是否为对象
代码如下:

<script type="text/javascript">
linenum
//<![CDATA[ 
document.write(isObject(new Object()),'<br/>'); 
document.write(isObject(10),'<br/>'); 
function isObject(obj){ 
return (typeof obj=='object')&&obj.constructor==Object; 
} 
//]]> 
</script>

希望本文所述对大家学习javascript程序设计有所帮助。

Javascript 相关文章推荐
js删除所有的cookie的代码
Nov 25 Javascript
基于jQuery的左右滚动实现代码
Dec 03 Javascript
基于jquery实现的鼠标拖拽元素复制并写入效果
Aug 23 Javascript
web的各种前端打印方法之jquery打印插件jqprint实现网页打印
Jan 09 Javascript
JS函数的定义与调用方法推荐
May 12 Javascript
Select2.js下拉框使用小结
Oct 24 Javascript
浅析JavaScript的几种Math函数,random(),ceil(),round(),floor()
Dec 22 Javascript
使用JavaScript开发跨平台的桌面应用详解
Jul 27 Javascript
微信小程序如何获取用户信息
Jan 26 Javascript
浅谈Node.js 中间件模式
Jun 12 Javascript
详解 微信小程序开发框架(MINA)
May 17 Javascript
小程序接入腾讯位置服务的详细流程
Mar 03 Javascript
jQuery操作基本控件方法实例分析
Dec 31 #Javascript
javascript图片延迟加载实现方法及思路
Dec 31 #Javascript
jQuery动画显示和隐藏效果实例演示(附demo源码下载)
Dec 31 #Javascript
详解javascript高级定时器
Dec 31 #Javascript
jQuery动画效果相关方法实例分析
Dec 31 #Javascript
js实现文字垂直滚动和鼠标悬停效果
Dec 31 #Javascript
jquery正则表达式验证(手机号、身份证号、中文名称)
Dec 31 #Javascript
You might like
PHP模板引擎Smarty自定义变量调解器用法
2016/04/11 PHP
PHP中register_shutdown_function函数的基础介绍与用法详解
2017/11/28 PHP
php生成复杂验证码(倾斜,正弦干扰线,黏贴,旋转)
2018/03/12 PHP
Alliance vs AM BO3 第二场2.13
2021/03/10 DOTA
网页javascript精华代码集
2007/01/24 Javascript
javascript 构建一个xmlhttp对象池合理创建和使用xmlhttp对象
2010/01/15 Javascript
使用dynatrace-ajax跟踪JavaScript的性能
2010/04/12 Javascript
有关js的变量作用域和this指针的讨论
2010/12/16 Javascript
javascript之典型高阶函数应用介绍
2013/01/10 Javascript
为开发者准备的10款最好的jQuery日历插件
2014/02/04 Javascript
禁止iframe页面的所有js脚本如alert及弹出窗口等
2014/09/03 Javascript
js实现绿白相间竖向网页百叶窗动画切换效果
2015/03/02 Javascript
jQuery定义背景动态切换效果的方法
2015/03/23 Javascript
用JS动态设置CSS样式常见方法小结(推荐)
2016/11/10 Javascript
BootStrap的两种模态框方式
2017/05/10 Javascript
Bootstrap Tree View简单而优雅的树结构组件实例解析
2017/06/15 Javascript
JS 组件系列之Bootstrap Table 冻结列功能IE浏览器兼容性问题解决方案
2017/06/30 Javascript
Vue+Webpack完美整合富文本编辑器TinyMce的方法
2018/11/30 Javascript
[01:02]DOTA2辉夜杯决赛日 CDEC.Y对阵VG赛前花絮
2015/12/27 DOTA
Python深入学习之特殊方法与多范式
2014/08/31 Python
python微信公众号之关注公众号自动回复
2018/10/25 Python
解决python中无法自动补全代码的问题
2018/12/04 Python
python2和python3在处理字符串上的区别详解
2019/05/29 Python
python判断链表是否有环的实例代码
2020/01/31 Python
套娃式文件夹如何通过Python批量处理
2020/08/23 Python
python与c语言的语法有哪些不一样的
2020/09/13 Python
纯CSS3制作的简洁蓝白风格的登录模板(非IE效果更好)
2013/08/11 HTML / CSS
英国领先的亚洲旅游专家:Wendy Wu Tours
2018/01/21 全球购物
理肤泉加拿大官网:La Roche-Posay加拿大
2018/07/06 全球购物
副总经理工作职责
2013/11/28 职场文书
物业门卫岗位职责
2013/12/28 职场文书
茶叶生产计划书
2014/01/10 职场文书
低碳日宣传活动总结
2014/07/09 职场文书
2015年度员工自我评价范文
2015/03/11 职场文书
大学学生会主席竞选稿
2015/11/19 职场文书
Python爬虫基础之初次使用scrapy爬虫实例
2021/06/26 Python