这篇文章主要为大家分享了一个简单的 javascript 数据类型验证方法,感兴趣的小伙伴们可以参考一下
Javascript 是一种由 Netscape 的 LiveScript 发展而来的原型化继承的基于对象的动态类型的区分大小写的客户端脚本语言,主要目的是为了解决服务器端语言,比如 Perl,遗留的速度问题,为客户提供更流畅的浏览效果。
最近对 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 程序设计有所帮助。
来源: http://www.phperz.com/article/17/0218/267812.html