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 相关文章推荐
客户端静态页面玩分页
Jun 26 Javascript
对采用动态原型方式无法展示继承机制得思考
Dec 04 Javascript
js中数组Array的一些常用方法总结
Aug 12 Javascript
JS 去除Array中的null值示例代码
Nov 20 Javascript
js图片实时加载提供网页打开速度
Sep 11 Javascript
全面解析Bootstrap图片轮播效果
Dec 03 Javascript
jquery 一键复制到剪切板的实例
Sep 20 jQuery
解决百度Echarts图表坐标轴越界的方法
Oct 17 Javascript
在Vue中使用axios请求拦截的实现方法
Oct 25 Javascript
详解JS实现简单的时分秒倒计时代码
Apr 25 Javascript
vue-cli4.x创建企业级项目的方法步骤
Jun 18 Javascript
Postman如何实现参数化执行及断言处理
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
PHP实现的json类实例
2015/07/28 PHP
thinkphp 5框架实现登陆,登出及session登陆状态检测功能示例
2019/10/10 PHP
使用apply方法实现javascript中的对象继承
2013/12/16 Javascript
Ext GridPanel加载完数据后进行操作示例代码
2014/06/17 Javascript
js实现二代身份证号码验证详解
2014/11/20 Javascript
Javascript字符串浏览器兼容问题分析
2014/12/01 Javascript
jquery获取当前日期的方法
2015/01/14 Javascript
JS中获取函数调用链所有参数的方法
2015/05/07 Javascript
jQuery获取URL请求参数的方法
2015/07/18 Javascript
jQuery满意度星级评价插件特效代码分享
2015/08/19 Javascript
js实现新浪微博首页效果
2015/10/16 Javascript
又一款js时钟!transform实现时钟效果
2016/08/15 Javascript
AngularJS中控制器函数的定义与使用方法示例
2017/10/10 Javascript
VueJs使用Amaze ui调整列表和内容页面
2017/11/30 Javascript
vue里面v-bind和Props 利用props绑定动态数据的方法
2018/08/27 Javascript
解决Js先触发失去焦点事件再执行点击事件的问题
2018/08/30 Javascript
[01:10:03]OG vs EG 2018国际邀请赛淘汰赛BO3 第三场 8.23
2018/08/24 DOTA
Python爬虫:通过关键字爬取百度图片
2017/02/17 Python
python查询mysql,返回json的实例
2018/03/26 Python
python实现微信自动回复功能
2018/04/11 Python
详解python 破解网站反爬虫的两种简单方法
2020/02/09 Python
Python3 webservice接口测试代码详解
2020/06/23 Python
日本土著品牌,综合型购物网站:Cecile
2016/08/23 全球购物
英国最大的老式糖果店:A Quarter Of
2017/04/08 全球购物
Omio荷兰:预订火车、巴士和机票
2018/11/04 全球购物
世界上最受欢迎的花店:1-800-Flowers.com
2020/06/01 全球购物
Made in Design意大利:现代家具、名家灯具和装饰
2020/10/27 全球购物
办公室前台的岗位职责
2013/12/20 职场文书
yy结婚证婚词
2014/01/10 职场文书
酒吧创业计划书
2014/01/18 职场文书
物业管理工作方案
2014/05/10 职场文书
消防工作实施方案
2014/06/09 职场文书
专升本学生毕业自我鉴定
2014/10/04 职场文书
2015年收银员个人工作总结
2015/04/01 职场文书
安全教育的主题班会
2015/08/13 职场文书
Java Spring读取和存储详细操作
2022/08/05 Java/Android