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 相关文章推荐
jQuery Autocomplete自动完成插件
Jul 17 Javascript
raphael.js绘制中国地图 地图绘制方法
Feb 12 Javascript
用jquery模仿的a的title属性的例子
Oct 22 Javascript
开源的javascript项目Kissy介绍
Nov 28 Javascript
谈一谈jQuery核心架构设计
Mar 28 Javascript
AngularJS路由Ui-router模块用法示例
May 29 Javascript
JS实现图片预览的两种方式
Jun 27 Javascript
Node.js 使用流实现读写同步边读边写功能
Sep 11 Javascript
简单谈谈vue的过渡动画(推荐)
Oct 11 Javascript
解决vue初始化项目时,一直卡在Project description上的问题
Oct 31 Javascript
微信小程序实现canvas分享朋友圈海报
Jun 21 Javascript
浅谈JavaScript中this的指向更改
Jul 28 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
LotusPhp笔记之:Logger组件的使用方法
2013/05/06 PHP
php 删除一维数组中某一个值元素的操作方法
2018/02/01 PHP
PHP实现字符串大小写转函数的功能实例
2019/02/06 PHP
laravel5表单唯一验证的实例代码
2019/09/30 PHP
jquery 选择器部分整理
2009/10/28 Javascript
Jquery Ajax学习实例 向页面发出请求,返回XML格式数据
2010/03/14 Javascript
一个基于jQuery的树型插件(OrangeTree)使用介绍
2012/05/03 Javascript
JS中window.open全屏命令解析及使用示例
2013/12/11 Javascript
Ajax提交与传统表单提交的区别说明
2014/02/07 Javascript
JS实现仿京东淘宝竖排二级导航
2014/12/08 Javascript
Javascript实现单张图片浏览
2014/12/18 Javascript
jQuery实现右侧显示可向左滑动展示的深色QQ客服效果代码
2015/10/23 Javascript
Jquery Easyui对话框组件Dialog使用详解(14)
2016/12/19 Javascript
canvas的神奇用法
2017/02/03 Javascript
微信小程序 wx:for的使用实例详解
2017/04/27 Javascript
w3c编程挑战_初级脚本算法实战篇
2017/06/23 Javascript
详解从0开始搭建微信小程序(前后端)的全过程
2019/04/15 Javascript
基于vue-cli 路由 实现类似tab切换效果(vue 2.0)
2019/05/08 Javascript
vue实现一个矩形标记区域(rectangle marker)的方法
2020/10/28 Javascript
[02:23]2014DOTA2国际邀请赛中国战队回顾
2014/08/01 DOTA
在Python的Django框架下使用django-tagging的教程
2015/05/30 Python
Python 爬虫之超链接 url中含有中文出错及解决办法
2017/08/03 Python
简单了解什么是神经网络
2017/12/23 Python
python使用matplotlib画柱状图、散点图
2019/03/18 Python
python安装本地whl的实例步骤
2019/10/12 Python
Python3.7.0 Shell添加清屏快捷键的实现示例
2020/03/23 Python
python实现爱奇艺登陆密码RSA加密的方法示例详解
2020/05/27 Python
Django路由层URLconf作用及原理解析
2020/09/24 Python
python UDF 实现对csv批量md5加密操作
2021/01/01 Python
奥地利体育网上商店:Gigasport
2019/10/09 全球购物
优秀党员主要事迹
2014/01/19 职场文书
房地产开盘策划方案
2014/02/10 职场文书
会务接待方案
2014/02/27 职场文书
新员工试用期工作总结2015
2015/05/28 职场文书
退休欢送会致辞
2015/07/31 职场文书
python ConfigParser库的使用及遇到的坑
2022/02/12 Python