读书人

asp.net 后台判断文本框输入内容是否为

发布时间: 2012-04-01 17:23:46 作者: rapoo

asp.net 后台判断文本框输入内容是否为日期格式
1、asp.net 后台判断文本框输入内容是否为日期格式。不要说什么js什么的前台判断我要后台的代码。
2、就是当用户在前台输入时候,后台判断输入内容是否满足日期:yyyy-MM-dd 这种格式。

[解决办法]
用正则吧
[解决办法]
参考:
http://www.cnblogs.com/insus/articles/1430441.html
[解决办法]
datetime.tryparse()
[解决办法]
using System.Text.RegularExpressions;

public static bool IsDate(string StrSource)
{//判断输入日期格式是否正确正则表达式 http://developer.51cto.com/art/200908/141153.htm //using System.Text.RegularExpressions;//正则表达式Regex
return Regex.IsMatch(StrSource, @"^((((1[6-9]|[2-9]\d)\d{2})-(0?[13578]|1[02])-(0?[1-9]|[12]\d|3[01]))|(((1[6-9]|[2-9]\d)\d{2})-(0?[13456789]|1[012])-(0?[1-9]|[12]\d|30))|(((1[6-9]|[2-9]\d)\d{2})-0?2-(0?[1-9]|1\d|2[0-9]))|(((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))-0?2-29-))$");
}
[解决办法]

探讨
datetime.tryparse()

[解决办法]
正则还不如用
Date.TryParse来的可靠。。。。。。
[解决办法]
//判断输入的日期是否正确

function CheckDate(INDate)
{
if (INDate=="")
{
return true;
}
subYY=INDate.substr(0,4)
if(isNaN(subYY) || subYY<=0)
{
return true;
}
//转换月份
if(INDate.indexOf('-',0)!=-1)
{
separate="-"
}
else
{
if(INDate.indexOf('/',0)!=-1)
{
separate="/"
}
else
{
return true;
}
}
area=INDate.indexOf(separate,0)
subMM=INDate.substr(area+1,INDate.indexOf(separate,area+1)-(area+1))
if(isNaN(subMM) || subMM<=0)
{
return true;
}
if(subMM.length<2)
{
subMM="0"+subMM
}
//转换日

area=INDate.lastIndexOf(separate)
subDD=INDate.substr(area+1,INDate.length-area-1)
if(isNaN(subDD) || subDD<=0)
{
return true;
}
if(eval(subDD)<10)
{
subDD="0"+eval(subDD)
}
NewDate=subYY+"-"+subMM+"-"+subDD
if(NewDate.length!=10)
{
return true;
}
if(NewDate.substr(4,1)!="-")
{
return true;
}
if(NewDate.substr(7,1)!="-")
{
return true;
}
var MM=NewDate.substr(5,2);
var DD=NewDate.substr(8,2);
if((subYY%4==0 && subYY%100!=0)||subYY%400==0)
{
//判断是否为闰年

if(parseInt(MM,10)==2)
{
if(DD>29)
{
return true;
}
}
}
else
{
if(parseInt(MM,10)==2)
{
if(DD>28)
{
return true;
}
}
}
var mm=new Array(1,3,5,7,8,10,12); //判断每月中的最大天数

for(i=0;i< mm.length;i++)
{
if (parseInt(MM,10) == mm[i])
{
if(parseInt(DD,10)>31)


{
return true;

}
}
else
{
if(parseInt(MM,10) == 4 || parseInt(MM,10) == 6 || parseInt(MM,10) == 9 || parseInt(MM,10) == 11)
{
if(parseInt(DD,10)>30)
{
return true;
}
}
}
}
if(parseInt(MM,10)>12)
{
return true;
}
return false;
}
[解决办法]
1 首先用Date.TryPase();
2 如果通过,再验证是否是yyyy-MM-dd的格式。这种验证有很多方式吧。
[解决办法]
其实,我们在输入时,只管它是不是日期即可,不必计较它的格式。
只是有显示时,才会去控制日期或时间的显示的格式。

读书人网 >asp.net

热点推荐