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-))$");
}
------解决方案--------------------
------解决方案--------------------正则还不如用
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)