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实现的检测浏览器和系统的函数
Apr 09 Javascript
JavaScript判断表单中多选框checkbox选中个数的方法
Aug 17 Javascript
Angular 4依赖注入学习教程之ValueProvider的使用(七)
Jun 04 Javascript
Vue使用vue-cli创建项目
Sep 01 Javascript
详谈构造函数加括号与不加括号的区别
Oct 26 Javascript
JS实现的JSON数组去重算法示例
Apr 11 Javascript
JavaScript实现点击出现图片并统计点击次数功能示例
Jul 23 Javascript
微信小程序中使用wxss加载图片并实现动画效果
Aug 13 Javascript
解决vue组件props传值对象获取不到的问题
Jun 06 Javascript
Vue 如何使用props、emit实现自定义双向绑定的实现
Jun 05 Javascript
JS实现4位随机验证码
Oct 19 Javascript
JS一分钟在github+Jekyll的博客中添加访问量功能的实现
Apr 03 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
IIS安装Apache伪静态插件的具体操作图文
2013/07/01 PHP
php 发送带附件邮件示例
2014/01/23 PHP
[原创]PHP正则匹配中英文、数字及下划线的方法【用户名验证】
2017/08/01 PHP
php ajax数据传输和响应方法
2018/08/21 PHP
document.body.scrollTop 值总为0的解决方法 比较常见的标准问题
2009/11/30 Javascript
40个有创意的jQuery图片和内容滑动及弹出插件收藏集之三
2012/01/03 Javascript
Js 去掉字符串中的空格(实现代码)
2013/11/19 Javascript
页面实时更新时间的JS实例代码
2013/12/18 Javascript
javascript实现tab响应式切换特效
2016/01/29 Javascript
Vue数据驱动模拟实现3
2017/01/11 Javascript
jquery对象与DOM对象转化
2017/02/08 Javascript
Bootstrap模态框使用详解
2017/02/15 Javascript
vue之数据交互实例代码
2017/06/16 Javascript
微信小程序表单弹窗实例
2018/07/19 Javascript
vue踩坑记录之数组定义和赋值问题
2019/03/20 Javascript
layui使用表格渲染获取行数据的例子
2019/09/13 Javascript
详解搭建一个vue-cli的移动端H5开发模板
2020/01/17 Javascript
Python装饰器使用示例及实际应用例子
2015/03/06 Python
Python中的列表知识点汇总
2015/04/14 Python
Python类定义和类继承详解
2015/05/08 Python
Python中的Descriptor描述符学习教程
2016/06/02 Python
python 高效去重复 支持GB级别大文件的示例代码
2018/11/08 Python
python 使用re.search()筛选后 选取部分结果的方法
2018/11/28 Python
python通过ffmgep从视频中抽帧的方法
2018/12/05 Python
对python列表里的字典元素去重方法详解
2019/01/21 Python
Python单链表原理与实现方法详解
2020/02/22 Python
keras自定义回调函数查看训练的loss和accuracy方式
2020/05/23 Python
从python读取sql的实例方法
2020/07/21 Python
Html5新增标签与样式及让元素水平垂直居中
2019/07/11 HTML / CSS
解决HTML5中的audio在手机端和微信端的不能自动播放问题
2019/11/04 HTML / CSS
Forever 21美国官网:美国标志性快时尚品牌
2017/02/20 全球购物
JSP和EJB可以共享HttpSession么?EJB里面可以改变session里面的内容
2013/06/05 面试题
汽车运用工程系毕业生自荐信
2013/12/27 职场文书
园林系毕业生求职信
2014/06/23 职场文书
实习单位指导教师评语
2014/12/30 职场文书
未发现nvidia显卡怎么办?Win11系统中未检测到nvidia显卡解决教程
2022/04/08 数码科技