1. js方法:
需要调用日期验证的正则表达式:
日期的正则表达式,YYYY-MM-DD YYYY/MM/DD YYYY.MM.DD
"^(?:(?:(?:(?:1[6-9]|[2-9]\d)?(?:0[48]|[2468][048]|[13579][26])|(?:(?:16|[2468][048]|[3579][26])00)))(\/|-|\.)(?:0?2\1(?:29))$)|(?:(?:1[6-9]|[2-9]\d)?\d)(\/|-|\.)(?:(?:(?:0?[13578]|1[02])\2(?:31))|(?:(?:0?[1,3-9]|1[0-2])\2(29|30))|(?:(?:0?[1-9])|(?:1[0-2]))\2(?:0?[1-9]|1\d|2[0-8]))$"
验证方法:
var reg = new RegExp(^(?:(?:(?:(?:1[6-9]|[2-9]\d)?(?:0[48]|[2468][048]|[13579][26])|(?:(?:16|[2468][048]|[3579][26])00)))(\/|-|\.)(?:0?2\1(?:29))$)|(?:(?:1[6-9]|[2-9]\d)?\d)(\/|-|\.)(?:(?:(?:0?[13578]|1[02])\2(?:31))|(?:(?:0?[1,3-9]|1[0-2])\2(29|30))|(?:(?:0?[1-9])|(?:1[0-2]))\2(?:0?[1-9]|1\d|2[0-8]))$);
if (! reg.test(document.form1.TxtBeginDate.value))
{
alert("日期格式错误");
}
2. 在后台.cs中验证方法:
DateTime date = DateTime.MinValue;
bool flag = DateTime.TryParse("1999-09-53 12:22:22",out date);
如果成功正flag为true;如果有错 flag就为false
date 就是你的这个string 的 datetime模式 否则 date就是 DateTime的最小值
--------------------------具体实现如下:-------------------------
//开始时间
if (this.txtWorkStartDate.Text != "")
{
DateTime date = DateTime.MinValue;
bool flag = DateTime.TryParse(this.txtWorkStartDate.Text.ToString(), out date);
if (flag)
{
incomeSearch.StartTime = date;
}
else
{
WK.Util.UMesageBox.Alert("日期格式错误");
}
}
else
{
incomeSearch.StartTime = Convert.ToDateTime("1990-1-1");
}
//结束时间
if (this.txtWorkEndDate.Text != "")
{
DateTime dateEnd = DateTime.MinValue;
bool flagEnd = DateTime.TryParse(this.txtWorkEndDate.Text.ToString(), out dateEnd);
if (flagEnd)
{
incomeSearch.EndTime = dateEnd;
}
else
{
WK.Util.UMesageBox.Alert("日期格式错误");
}
}
注:双重验证比较安全,如果浏览器禁用js,那么前台验证就失效了