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

js关于输入内容是否为空,以及输入数字,时间,长短是否正确的判断

2010-04-29 13:37 836 查看
输入内容的判断,包括是否为空,是否为数字,是否为日期(短日期格式,长日期格式,时间),输入的是否为email,输入长短;调用的时候只需要设置输入框的属性即可;

如果大家还需要其他判断,欢迎指正;

<script language="javascript">

/*
albertwlz 2010 V1.0 Build 0419
(C)Copyright2003- 2010 47147.com , 网址导航.
Homepage : http://www.47147.com
E-Mail : 294411855@qq.com
QQ : 294411855
*/
//js通用函数,所有的

//获取id的object
function $(id) {
return document.getElementById(id);
}

//判断日期是否正确
function isDate(strDate){
var strSeparator = "-"; //日期分隔符
var strDateArray;
var intYear;
var intMonth;
var intDay;
var boolLeapYear;
//var strDate=form1.a.value //表单中的日期值
strDateArray = strDate.split(strSeparator);

//判断是否为年、月、日三段
//alert('提示: 日期格式错误! /r/n 请依【YYYY-MM-DD】格式输入!');
if(strDateArray.length!=3){return false;}

//设置为10进制
intYear = parseInt(strDateArray[0],10);
intMonth = parseInt(strDateArray[1],10);
intDay = parseInt(strDateArray[2],10);

//判断年、月、日是否为数字
if(isNaN(intYear)||isNaN(intMonth)||isNaN(intDay)){return false;}

//判断月份大小是否为1到12
if(intMonth>12||intMonth<1){return false;}

//判断1 3 5 7 8 10 12月是否为1到31天
if((intMonth==1||intMonth==3||intMonth==5||intMonth==7||intMonth==8||intMonth==10||intMonth==12)&&(intDay>31||intDay<1)){return false;}

//判断4 6 9 11月是否为1到30天
if((intMonth==4||intMonth==6||intMonth==9||intMonth==11)&&(intDay>30||intDay<1)){return false;}

//判断2月是否为1到28或29天
if(intMonth==2){
if(intDay<1){return false;}
boolLeapYear = false;
if((intYear%4==0 && intYear %100!=0)||(intYear %400==0)){boolLeapYear=true;}
if(boolLeapYear){
if(intDay>29){return false;}
}
else{
if(intDay>28){return false;}
}
}
//正确返回
return true;
}

//判断时间是否正确
function isTime(strTime){
var strSeparator = ":"; //时间分隔符
var strTimeArray;
var intHour;
var intMinute;
var intSecond;
//var strTime=form1.a.value //表单中的时间值
strTimeArray = strTime.split(strSeparator);

//判断是否为小时、分钟、秒钟三段
//alert('提示: 时间格式错误! /r/n 请依【YYYY-MM-DD HH:MM:SS】格式输入!');
if(strTimeArray.length!=3){return false;}

//设置为10进制
intHour = parseInt(strTimeArray[0],10);
intMinute = parseInt(strTimeArray[1],10);
intSecond = parseInt(strTimeArray[2],10);

//判断小时、分钟、秒钟是否为数字
if(isNaN(intHour)||isNaN(intMinute)||isNaN(intSecond)){return false;}

//判断小时、分钟、秒钟是否为0到59
if(intHour>59||intHour<0||intMinute>59||intMinute<0||intSecond>59||intSecond<0){return false;}

return true;
}

//是否为长时间格式(日期加时间)
function isDatetime(strDatetime){
var strSeparator = " "; //日期时间分隔符
var strDatetimeArray;
var strDate;
var strTime;
//var strDatetime=form1.a.value //表单中的日期时间值
strDatetimeArray = strDatetime.split(strSeparator);

//判断是否为日期时间两段
//alert('提示: 时间格式错误! /r/n 请依【HH:MM:SS】格式输入!');
if(strDatetimeArray.length!=2){return false;}

//设置为10进制
strDate = strDatetimeArray[0];
strTime = strDatetimeArray[1];

//判断日期和时间是否正确
if(!isDate(strDate)||!isTime(strTime)){return false;}

return true;
}

//对比开始时间和结束时间
function compareTwoDate(firstDate,secondDate){
if(firstDate!=""&&secondDate!="")
{ //输入不为空时;
// 对字符串进行处理
// 以 - / 或 空格 为分隔符, 将日期字符串分割为数组
var date1 = firstDate.split("-");
var date2 = secondDate.split("-");
// 创建 Date 对象
var myDate1 = new Date(date1[0],date1[1],date1[2]);
var myDate2 = new Date(date2[0],date2[1],date2[2]);
// 对日起进行比较
if (myDate1 <= myDate2)
{
return true;
}else
{
alert ("提示: 开始时间不能大于结束时间!");
return false;
}
}
else
{
return true;
}
}

//是否email
function isEmail(thisEmail){
var reyx= /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(.[a-zA-Z0-9_-])+/;
return(reyx.test(thisEmail));
}

//判断输入
function checkEmpty(thisName)
{
//alert(thisName);
var thisArr = $(""+thisName+"");
var thisArrLen = thisArr.length;
for(i=0;i<thisArrLen;i++){
//alert(thisArr(i).isEmpty);
//判断是否为空 isEmpty
if (thisArr(i).isEmpty ==1){
if (thisArr(i).value == "")
{
alert(thisArr(i).chkName+"不能为空!");
thisArr(i).focus();
return (false);
}
}

//判断最大长度 isMaxLen
if (thisArr(i).value != "" && thisArr(i).isMaxLen != "undefined" && parseInt(thisArr(i).isMaxLen)>0){
if (parseInt(thisArr(i).value.length) > thisArr(i).isMaxLen)
{
alert(thisArr(i).chkName+"超出了最大长度,最大长度为:"+thisArr(i).isMaxLen);
thisArr(i).focus();
return (false);
}
}

//判断最小长度isNumber
if (thisArr(i).value != "" && thisArr(i).isMinLen != "undefined" && parseInt(thisArr(i).isMinLen)>0){
if (parseInt(thisArr(i).value.length) < thisArr(i).isMinLen)
{
alert(thisArr(i).chkName+"没有达到最小长度,最小长度为:"+thisArr(i).isMinLen);
thisArr(i).focus();
return (false);
}
}

//判断是否为日期格式 isDate
if (thisArr(i).value != "" && thisArr(i).isDate == 1){
if (!isDate(thisArr(i).value))
{
alert(thisArr(i).chkName+"必须为日期格式,请依【YYYY-MM-DD】格式输入!");
thisArr(i).focus();
return (false);
}
}

//判断是否为时间格式 isTime
//alert(thisArr(i).isTime)
if (thisArr(i).value != "" && thisArr(i).isTime == 1){
if (!isTime(thisArr(i).value))
{
alert(thisArr(i).chkName+"必须为时间格式,请依【HH:MM:SS】格式输入!");
thisArr(i).focus();
return (false);
}
}

//判断是否为长日期格式
if (thisArr(i).value != "" && thisArr(i).isDatetime == 1){
if (!isDatetime(thisArr(i).value))
{
alert(thisArr(i).chkName+"必须为日期时间格式,请依【YYYY-MM-DD HH:MM:SS】格式输入!");
thisArr(i).focus();
return (false);
}
}

//判断是否为数字格式 isNumber
if (thisArr(i).value != "" && thisArr(i).isNumber == 1){
if (isNaN(thisArr(i).value))
{
alert(thisArr(i).chkName+"必须为数字!");
thisArr(i).focus();
return (false);
}
}

//判断是否为邮箱 isEmail
if (thisArr(i).value != "" && thisArr(i).isEmail == 1){
if (!isEmail(thisArr(i).value))
{
alert(thisArr(i).chkName+"填写不正确,请正确填写邮箱!");
thisArr(i).focus();
return (false);
}
}
}
return (true);
}

</script>

页面调用js的设置

<form name="FormLogin" id="FormLogin" method="post" action="newsSave.asp" onSubmit="return checkEmpty('FormLogin')">nput name="Subject" id="Subject" type="text" size="50" maxlength="50" chkName="新闻标题" isEmpty="1">

<input name="submit" type="submit" id="submit" value=" 提 交 ">

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