javascript验证数据类型

最近通过对Underscore.js源码的学习,对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>

代码的位置在:

http://runjs.cn/code/ucwpitro

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-11-07 14:14:22

javascript验证数据类型的相关文章

JavaScript判断数据类型总结

最近做项目中遇到了一些关于javascript数据类型的判断处理,上网找了一下资料,并且亲自验证了各种数据类型的判断网页特效,在此做一个总结吧! 一.JS中的数据类型  1.数值型(Number):包括整数.浮点数. 2.布尔型(Boolean) 3.字符串型(String) 4.对象(Object) 5.数组(Array) 6.空值(Null) 7.未定义(Undefined) 二.判断一个变量的数据类型 1.数值型(number) 比较常用的判断方法是: 1 function isNumbe

JavaScript 学习之第一篇JavaScript的数据类型(2016/8/29 晚 23:12)

1. JavaScript的数据类型 JavaScript 里面有6中数据类型 Boolean String Number Undefined Null Object object(对象)类型包含了数组(arrays) 函数(functions) 以及其他一般对.  数字(Numbers) 类型可以是整型(intergers)或者浮点数(float point)类型以及特殊值NaN 和 Infinity  字符串(Strings)类型包含了空字符串 " ". 布尔值(Booleans)

JavaScript之数据类型

数据类型 JavaScript中有5种简单数据类型(也称为基本数据类型):Undefined.Null.Boolean.Number和String.还有1种复杂数据类型——Object,Object本质上是由一组无序的名值对组成的. typeof操作符 介于JavaScript是松散类型的,因此需要有一种手段来检测给定变量的数据类型——typeof就是负责提供者方面信息的操作符.对一个值使用typeof操作符可能返回下列某个字符串: ● "undefined"——如果这个值未定义: ●

JavaScript的数据类型都有什么? JavaScript中 toStirng() 与 Object.prototype.toString().call()

JavaScript的数据类型都有什么? (via  BAT互联网公司2014前端笔试面试题:JavaScript篇  http://www.sxt.cn/u/756/blog/4508) 基本数据类型:String,boolean,Number,Undefined, Null 引用数据类型: Object(Array,Date,RegExp,Function) 疑问:这些基本的数据类型的值都是常量,而常量是没有方法的,为什么能够调用方法呢?答案是这样的,五种基本类型除了null.undefin

JavaScript验证邮箱的正则表达式

用JavaScript验证邮箱的正则表达式时,一般比较常用的是用以下两种: var pattern = /^([a-zA-Z0-9_-])[email protected]([a-zA-Z0-9_-])+(.[a-zA-Z0-9_-])+/; var pattern = ^\w+[-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$; 但是有时也会碰到像这种邮件:[email protected] 格式的邮件,这样便验证不了了.其实只要将第一个稍微改一下便可以了: va

【JavaScript基础】在写冒泡排序时遇到的JavaScript基础问题:JavaScript的数据类型和变量赋值时的原理

写冒泡排序时,遇到一个问题: function bubbleSort(arr){ var temp = 0; console.log("传入的数组:"); console.log(arr); for(var i = 0;i<arr.length;i++){ //循环arr.length-1次 console.log("外层第"+i+"次循环===============start"); for(var j = 0;j<arr.leng

Eclipse去除JavaScript验证错误

这篇文章主要是对Eclipse去除js(JavaScript)验证错误进行了介绍.在Eclipse中,js文件常常会报错.可以通过如下几个步骤解决 第一步: 去除eclipse的JS验证: 将windows->preference->Java Script->Validator->Errors/Warnings-> Enable Javascript Sematic validation前面的勾去掉; 第二步: 右键项目 -> properties -> Buil

请简述javascript的数据类型种类?

答案: javascript里的数据类型分为基本数据类型 和 引用数据类型两种, 其中, 基本数据类型包括5个:数值,字符串,布尔,null, undefined 引用数据类型包括3个:array,function,object 请简述javascript的数据类型种类?,布布扣,bubuko.com

使用JavaScript验证用户输入的是否为正整数

在项目开发中,需要使用JavaScript验证用户输入的是否为正整数. 方法一: var type="^[0-9]*[1-9][0-9]*$"; var r=new RegExp(type); var flag=r.test(subjectHour.value); if(!flag){ alert("课时应为正整数"); subjectHour.focus(); return false; } 方法二: var type="^[0-9]*[1-9][0-9