您的位置:首页 > Web前端 > JavaScript

js数据类型的判断

2012-04-07 15:26 281 查看
Js判断是否为数字,是否为空,是否为整形,是否为浮点型,是否为对象

2010-04-10
20:05

/**********************一。验证类*****************************/

//对象是否
存在

function
isObj(str)

{

if(str==null||typeof(str)=='undefined')

return
false;

return
true;

}

//去除字符串中的空格

function
strTrim(str)

{

if(!isObj(str))

return
'undefined';

str=str.replace(/^\s+|\s+$/g,'');

return
str;

}

/**********************1数字验
证******************************/

//1。1整数

//整数或者为空

function
isIntOrNull(str){

if(!isObj(str))//判断对象是否存在

return
'undefined';

return
isNull(str)||isInt(str);

}

//必需是整数

function
isInt(str){

var
reg = /^(-|\+)?\d+$/ ;

return
reg.test(str);

}

//1.2
小数

//小数或者为空

function
isFloatOrNull(str){

if(!isObj(str))//判
断对象是否存在

return
'undefined';

if(isInt(str))

return
true;

return
isNull(str)||isFloat(str);

}

//必需是小数

function
isFloat(str){

if(isInt(str))

return
true;

var
reg = /^(-|\+)?\d+\.\d*$/;

return
reg.test(str);

}

//1.3
数字大小判断

//数i不能大于数y

function
iMinY(i , y){

if(!isObj(i)||!isObj(y))//
判断对象是否存在

return
'undefined';

if(!(isFloat(i)&&isFloat(y)))

return
'比较的必须是数字类型'

if(i<=y)

return
true;

return
false;

}

//
数i不能小于数y

function
iMaxY(i , y){

if(!isObj(i)||!isObj(y))//判断对象是
否存在

return
'undefined';

if(!(isFloat(i)&&isFloat(y)))

return
'比较的必须是数字类型'

if(i>=y)

return
true;

return
false;

}

/**********************1
数字验证******************************/

/**********************2时间类验证******************************/

//2.1
短时间,形如 (13:04:06)

function
shortTimeCheck(str)

{

if(!isObj(str))//
判断对象是否存在

return
'undefined';

var
a = str.match(/^(\d{1,2})(:)?(\d{1,2})\2(\d{1,2})$/);

//var
a = str.match(/^\d{1,2}:\d{1,2}:\d{1,2}$/);

if
(a == null)

{

alert("
输入的参数不是时间格式");

return
false;

}

if
(a[1]>24 || a[3]>60 || a[4]>60)

{

alert("时间格式不对");

return
false

}

return
true;

}

//2.2
短日期,形如 (2003-12-05)

function
shorDateCheck(str)

{

var
r = str.match(/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/);

if(r==null)

return
false;

var
d= new Date(r[1], r[3]-1, r[4]);

return
(d.getFullYear()==r[1]&&(d.getMonth()+1)==r[3]&&d.getDate()==r[4]);

}

//2.3
长时间,形如 (2003-12-05 13:04:06)

function
longDateCheck(str)

{

var
reg = /^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2}) (\d{1,2}):(\d{1,2}):(\d{1,2})$/;

var
r = str.match(reg);

if(r==null)

return
false;

var
d= new Date(r[1], r[3]-1,r[4],r[5],r[6],r[7]);

return
(d.getFullYear()==r[1]&&(d.getMonth()+1)==r[3]&&d.getDate()==r[4]&&d.getHours()==r[5]&&d.getMinutes()==r[6]&&d.getSeconds()==r[7]);

}

//2.4
只有年和月。形如(2003-05,或者2003-5)

//2.5
只有小时和分钟,形如(12:03)

/**********************2时间类验证******************************/

/**********************3表单类验证******************************/

//3.1
所有的表单的值都不能为空,对象内容是否为空

function
isNull(str)

{

if(!isObj(str))

return
'undefined';

//alert("*"+str+"*");

str=strTrim(str);

//alert("*"+str+"*");

if(str.length>0)

return
false;

return
true;

}

//3.2
多行文本框的值不能为空。

//3.3
多行文本框的值不能超过sMaxStrleng

function
sMaxStrleng(str,len)

{

if(!isObj(str))

return
'undefined';

str=strTrim(str);

if(str.length>len)

return
false;

return
true;

}

//3.4
多行文本框的值不能少于sMixStrleng

function
sMixStrleng(str,len)

{

if(!isObj(str))

return
'undefined';

str=strTrim(str);

if(str.length<len)

return
false;

return
true;

}

//3.5
判断单选框是否选择。

//3.6
判断复选框是否选择.

//3.7
复选框的全选,多选,全不选,反选

//3.8
文件上传过程中判断文件类型

function
upLoadFileType(str)

{

return
str.match(/^(.*)(\.)(.{1,8})$/)[3];

}

/**********************3表单类
验证******************************/

/**********************4字符类验证******************************/

//4.1
判断字符全部由a-Z或者是A-Z的字字母组成

function
isLetter(str)

{

if(!isObj(str))

return
'undefined';

str=strTrim(str);

var
reg = /^[a-zA-Z]+$/g;

return
reg.test(str)

}

//4.2
判断字符由字母和数字组成。

function
isLetterOrNum(str)

{

if(!isObj(str))

return
'undefined';

str=strTrim(str);

var
reg = /^[0-9a-zA-Z]+$/g;

return
reg.test(str)

}

//4.3
判断字符由字母和数字,下划线,点号组成.且开头的只能是下划线和字母

function
isLegalityName(str)

{

if(!isObj(str))

return
'undefined';

str=strTrim(str);

var
reg = /^([a-zA-z_]{1})([A-Za-z0-9_\.]*)$/g;

return
reg.test(str)

}

//
/^([a-zA-z_]{1})([\w]*)$/g.test(str)

//4.4
字符串替换函数.Replace();

/**********************4
字符类验证******************************/

/**********************5浏览器类******************************/

//5.1
判断浏览器的类型

function
getIEType()

{

return
window.navigator.appName;

}

//5.2
判断ie的版本

function
getIEVersion()

{

return
window.navigator.appVersion;

}

//5.3
判断客户端的分辨率

function
getResolvingPower()

{

return
window.screen.height+"*"+window.screen.width;

}

/**********************5
浏览器类******************************/

/**********************6综合类******************************/

//6.1
email的判断。

function
isMail(mail)

{

return(new
RegExp(/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/).test(mail));

}

//6.2
手机号码的验证

function
isCellPhoneNum(num)

{

if(isNaN(num))

{

alert("输入的不是数字!");

return
false;

}

var
len = num.length;

if(len!=11)

{

return
false;

}

return
true;

}

//6.3
身份证的验证

function
isIdCardNo(num)

{

if(isNaN(num))

{

alert("输入的不是数字!");

return
false;

}

var
len = num.length;

if
(len == 15)

re
= new RegExp(/^(\d{6})()?(\d{2})(\d{2})(\d{2})(\d{3})$/);

else
if(len == 18)

re
= new RegExp(/^(\d{6})()?(\d{4})(\d{2})(\d{2})(\d{3})(\d)$/);

else

{

alert("输入的数字位数不对!");

return
false;

}

var
a = num.match(re);

if
(a != null)

{

if
(len==15)

{

var
D = new Date("19"+a[3]+"/"+a[4]+"/"+a[5]);

var
B = D.getYear()==a[3]&&(D.getMonth()+1)==a[4]&&D.getDate()==a[5];

}

else

{

var
D = new Date(a[3]+"/"+a[4]+"/"+a[5]);

var
B = D.getFullYear()==a[3]&&(D.getMonth()+1)==a[4]&&D.getDate()==a[5];

}

if
(!B)

{

alert("输入的身份证号
"+ a[0] +" 里出生日期不对!");

return
false;

}

}

return
true;

}

//身份证严格验证

function
IdCardNoCheck(sId){

var
aCity={11:"北京",12:"天津",13:"河北",14:"山西",15:"内蒙古",21:"辽宁",22:"吉林",23:"黑龙 江",31:"上海",32:"江苏",33:"浙江",34:"安徽",35:"福建",36:"江西",37:"山东",41:"河南",42:"湖 北",43:"湖南",44:"广东",45:"广西",46:"海南",50:"重庆",51:"四川",52:"贵州",53:"云南",54:"西 藏",61:"陕西",62:"甘肃",63:"青海",64:"宁夏",65:"新疆",71:"台湾",81:"香港",82:"澳门",91:"国
外"}

var
iSum=0

var
info=""

if(!/^\d{17}(\d|x)$/i.test(sId))

return
false;

sId=sId.replace(/x$/i,"a");

if(aCity[parseInt(sId.substr(0,2))]==null)return
"Error:非法地区";

sBirthday=sId.substr(6,4)+"-"+Number(sId.substr(10,2))+"-"+Number(sId.substr(12,2));

var
d=new Date(sBirthday.replace(/-/g,"/"))

if(sBirthday!=(d.getFullYear()+"-"+
(d.getMonth()+1) + "-" + d.getDate()))return "Error:非法生日";

for(var
i = 17;i>=0;i --) iSum += (Math.pow(2,i) % 11) * parseInt(sId.charAt(17 - i),11)

if(iSum%11!=1)return
"Error:非法证号";

//aCity[parseInt(sId.substr(0,2))]+","+sBirthday+","+
(sId.substr(16,1)%2?"男":"女")

return
true;

}

//6.4电话号码的验


function
PhoneCheck(str){

var
reg=/(^[0-9]{3,4}\-[0-9]{3,8}$)|(^[0-9]{3,8}$)|(^\([0-9]{3,4}\)[0-9]{3,8}$)|(^0{0,1}13[0-9]{9}$)/

alert(reg.test(str));

}

//6.5验证IP地址

function
isip(s){

var
check=function(v){try{return (v<=255 && v>=0)}catch(x){return false}};

var
re=s.split(".")

return
(re.length==4)?(check(re[0]) && check(re[1]) && check(re[2]) && check(re[3])):false

}

/**********************6综合类******************************/

//回车键换为
tab

function
enterToTab()

{

if(event.srcElement.type
!= 'button' && event.srcElement.type != 'textarea'

&&
event.keyCode == 13)

{

event.keyCode
= 9;

}

}

//具有在输入非数字字符不回显的效果,即对非数字字符的输入不作反应。

function
numbersonly(field,event){

var
key,keychar;

if(window.event){

key
= window.event.keyCode;

}

else
if (event){

key
= event.which;

}

else{

return
true ;

}

keychar
= String.fromCharCode(key);

if((key
== null)||(key == 0)||(key == 8)||(key == 9)||(key == 13)||(key == 27)){

return
true;

}

else
if(("0123456789.").indexOf(keychar)>-1){

window.status
= "";

return
true;

}

else
{

window.status
= "Field excepts numbers only";

return
false;

}

}

//

function
txtOnKeyPress()

{

var
code=String.fromCharCode(window.event.keyCode)+'';

alert(code);

var
temp =eval("isInt('"+code+"')");

window.event.returnValue
= temp;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: