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 树形结构的选择器
Feb 15 Javascript
jquery 弹出层注册页面等(asp.net后台)
Jun 17 Javascript
js 获取class的元素的方法 以及创建方法getElementsByClassName
Mar 11 Javascript
Extjs Gird 支持中文拼音排序实现代码
Apr 15 Javascript
JQuery 在线引用及测试引用是否成功
Jun 24 Javascript
了不起的node.js读书笔记之mongodb数据库交互
Dec 22 Javascript
jQuery定义背景动态切换效果的方法
Mar 23 Javascript
Javascript的表单验证-揭开正则表达式的面纱
Mar 18 Javascript
浅谈String.valueOf()方法的使用
Jun 06 Javascript
javascript与PHP动态往类中添加方法对比
Mar 21 Javascript
详解Vue.js自定义tipOnce指令用法实例
Dec 19 Javascript
Vue的H5页面唤起支付宝支付功能
Apr 18 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
在windows服务器开启php的gd库phpinfo中未发现
2013/01/13 PHP
IIS+fastcgi下PHP运行超时问题的解决办法详解
2013/06/20 PHP
php读取大文件示例分享(文件操作类)
2014/04/13 PHP
php中call_user_func函数使用注意事项
2014/11/21 PHP
php常用字符串比较函数实例汇总
2014/11/24 PHP
JavaScript中的闭包原理分析
2010/03/08 Javascript
jquery异步循环获取功能实现代码
2010/09/19 Javascript
script标签属性type与language使用选择
2012/12/02 Javascript
Javascript的时间戳和php的时间戳转换注意事项
2013/04/12 Javascript
NodeJS学习笔记之Connect中间件模块(二)
2015/01/27 NodeJs
JavaScript模拟数组合并concat
2016/03/06 Javascript
Bootstrap网格系统详解
2016/04/26 Javascript
浅析$.getJSON异步请求和同步请求
2016/06/06 Javascript
使用vue-router为每个路由配置各自的title
2018/07/30 Javascript
详解JavaScript作用域和作用域链
2019/03/19 Javascript
微信小程序开发(一):服务器获取数据列表渲染操作示例
2020/06/01 Javascript
Python新手们容易犯的几个错误总结
2017/04/01 Python
Pyinstaller将py打包成exe的实例
2018/03/31 Python
Python3.4 splinter(模拟填写表单)使用方法
2018/10/13 Python
使用Python制作简单的小程序IP查看器功能
2019/04/16 Python
Django自带的加密算法及加密模块详解
2019/12/03 Python
Linux下升级安装python3.8并配置pip及yum的教程
2020/01/02 Python
Python使用configparser库读取配置文件
2020/02/22 Python
Python 使用Opencv实现目标检测与识别的示例代码
2020/09/08 Python
纯css3制作煽动翅膀的蝴蝶的示例
2018/04/23 HTML / CSS
Marriott国际:万豪国际酒店查询预订
2017/09/25 全球购物
Nike挪威官网:Nike.com (NO)
2018/11/26 全球购物
旅游管理专业学生求职信
2013/09/28 职场文书
保密承诺书范文
2014/03/27 职场文书
技能比武方案
2014/05/21 职场文书
2014校长四风问题对照检查材料思想汇报
2014/09/16 职场文书
销售代理协议书
2014/09/30 职场文书
2014年公司工作总结
2014/11/22 职场文书
新手入门Mysql--概念
2021/06/18 MySQL
Python 数据结构之十大经典排序算法一文通关
2021/10/16 Python
源码分析Redis中 set 和 sorted set 的使用方法
2022/03/22 Redis