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实现不规则TAB选项卡效果代码
Sep 16 Javascript
JavaScript必看小技巧(必看)
Jun 07 Javascript
微信小程序 实例应用(记账)详解
Sep 28 Javascript
Javascript的动态增加类的实现方法
Oct 20 Javascript
史上最全JavaScript数组去重的十种方法(推荐)
Aug 17 Javascript
bootstrap-table实现服务器分页的示例 (spring 后台)
Sep 01 Javascript
Vue2几种常见开局方式详解
Sep 09 Javascript
微信小程序如何获取用户收货地址
Nov 27 Javascript
vue 中 beforeRouteEnter 死循环的问题
Apr 23 Javascript
基于Vue的商品主图放大镜方案详解
Sep 19 Javascript
vue treeselect获取当前选中项的label实例
Aug 31 Javascript
解决vue初始化项目一直停在downloading template的问题
Nov 09 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
DC动画很好看?新作烂得令人发指,名叫《红色之子》
2020/04/09 欧美动漫
外媒评选出10支2020年最受欢迎的Dota2战队
2021/03/05 DOTA
杏林同学录(五)
2006/10/09 PHP
PHP-Java-Bridge使用笔记
2014/09/22 PHP
PHP实现加密的几种方式介绍
2015/02/22 PHP
PHP仿tp实现mvc框架基本设计思路与实现方法分析
2018/05/23 PHP
PHP实现微信小程序人脸识别刷脸登录功能
2018/05/24 PHP
通过继承IHttpHandle实现JS插件的组织与管理
2010/07/13 Javascript
Jquery中扩展方法extend使用技巧
2014/08/24 Javascript
javascript中setAttribute()函数使用方法及兼容性
2015/07/19 Javascript
JS组件系列之Bootstrap table表格组件神器【终结篇】
2016/05/10 Javascript
自动适应iframe右边的高度
2016/12/22 Javascript
js实现会跳动的日历效果(完整实例)
2017/10/18 Javascript
ES6使用export和import实现模块化的方法
2018/09/10 Javascript
详解nuxt路由鉴权(express模板)
2018/11/21 Javascript
Vue强制组件重新渲染的方法讨论
2020/02/03 Javascript
js实现复制粘贴的两种方法
2020/12/04 Javascript
python3写爬取B站视频弹幕功能
2017/12/22 Python
python抓取需要扫微信登陆页面
2019/04/29 Python
python实时检测键盘输入函数的示例
2019/07/17 Python
Django组件content-type使用方法详解
2019/07/19 Python
python批量修改ssh密码的实现
2019/08/08 Python
Python数据可视化:箱线图多种库画法
2019/11/06 Python
在python中创建指定大小的多维数组方式
2019/11/28 Python
canvas绘制树形结构可视图形的实现
2020/04/03 HTML / CSS
挪威手表购物网站:Klokker
2016/09/19 全球购物
Cecil Mode法国在线商店:女性时尚
2021/01/08 全球购物
写自荐信三大法宝
2014/01/24 职场文书
学习雷锋倡议书
2014/04/15 职场文书
小城镇建设汇报材料
2014/08/16 职场文书
学生抄作业检讨书(2篇)
2014/10/17 职场文书
健康状况证明模板
2014/10/23 职场文书
营运督导岗位职责
2015/04/10 职场文书
2019年大学毕业生个人自我鉴定范文大全
2019/03/21 职场文书
pytorch 实现多个Dataloader同时训练
2021/05/29 Python
python神经网络学习 使用Keras进行回归运算
2022/05/04 Python