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 相关文章推荐
JavaScript的setAttribute兼容性问题解决方法
Nov 11 Javascript
jquery下div 的resize事件示例代码
Mar 09 Javascript
上传文件返回的json数据会被提示下载问题解决方案
Dec 03 Javascript
nw.js实现类似微信的聊天软件
Mar 16 Javascript
js跨域请求的5中解决方式
Jul 02 Javascript
JS上传组件FileUpload自定义模板的使用方法
May 10 Javascript
javascript与jquery动态创建html元素示例
Jul 25 Javascript
jQuery实现的兼容性浮动层示例
Aug 02 Javascript
微信小程序上滑加载下拉刷新(onscrollLower)分批加载数据(一)
May 11 Javascript
Vue精简版风格概述
Jan 30 Javascript
详解如何运行vue项目
Apr 15 Javascript
Vue 自定义标签的src属性不能使用相对路径的解决
Sep 17 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 Mysql日期和时间函数集合
2007/11/16 PHP
建站常用13种PHP开源CMS比较
2009/08/23 PHP
PHP is_subclass_of函数的一个BUG和解决方法
2014/06/01 PHP
PHP+jquery实时显示网站在线人数的方法
2015/01/04 PHP
PHP获取Exif缩略图的方法
2015/07/13 PHP
CI操作cookie的方法分析(基于helper类库)
2016/03/28 PHP
PHP函数shuffle()取数组若干个随机元素的方法分析
2016/04/02 PHP
PHP操作Postgresql封装类与应用完整实例
2018/04/24 PHP
解决PHP curl或file_get_contents下载图片损坏或无法打开的问题
2019/10/11 PHP
php设计模式之迭代器模式实例分析【星际争霸游戏案例】
2020/04/07 PHP
屏蔽鼠标右键、Ctrl+n、shift+F10、F5刷新、退格键 的javascript代码
2007/04/01 Javascript
JavaScript函数、方法、对象代码
2008/10/29 Javascript
js 纯数字不重复排列的另类方法
2010/07/17 Javascript
Notify - 基于jquery的消息通知插件
2011/10/18 Javascript
jQuery的Ajax的自动完成功能控件简要说明
2013/02/22 Javascript
js 触发select onchange事件代码
2014/03/20 Javascript
document.compatMode的CSS1compat使用介绍
2014/04/03 Javascript
分享jQuery插件的学习笔记
2016/01/14 Javascript
关于在Servelet中如何获取当前时间的操作方法
2016/06/28 Javascript
将 vue 生成的 js 上传到七牛的实例
2017/07/28 Javascript
详解vue项目打包后通过百度的BAE发布到网上的流程
2018/03/05 Javascript
Webpack之tree-starking 解析
2018/09/11 Javascript
vue动画之点击按钮往上渐渐显示出来的实例
2018/09/29 Javascript
Python中is与==判断的区别
2017/03/28 Python
python清除字符串前后空格函数的方法
2018/10/21 Python
使用python的pexpect模块,实现远程免密登录的示例
2019/02/14 Python
Python Pandas分组聚合的实现方法
2019/07/02 Python
Django Channels 实现点对点实时聊天和消息推送功能
2019/07/17 Python
Notino希腊:购买香水和美容产品
2019/07/25 全球购物
人力资源管理专业学生自我评价
2013/11/20 职场文书
受欢迎的大学生自我评价
2013/12/05 职场文书
市级三好学生事迹材料
2014/08/27 职场文书
县政协领导班子群众路线教育实践活动四风问题整改方案
2014/10/26 职场文书
文言文辞职信
2015/02/28 职场文书
redis 解决库存并发问题实现数量控制
2022/04/08 Redis
mysql中关键词exists的用法实例详解
2022/06/10 MySQL