使用CustomValidater以及JavaScript比较输入日期和当前日期
ASP.NET Code:
<asp:textbox id="BeginDate" ..../>
<asp:CustomValidator id="cvBeginDate" ControlToValidate=BeginDate runat="server" ErrorMessage="CustomValidator" ClientValidationFunction="ValidateBeginDate"></asp:CustomValidator>
JavaScript Code:
function ValidateBeginDate(source, arguments)
{
// 获取输入框数值
var tmpDate = arguments.Value;
// 对字符串进行处理
// 以 - / 或 空格 为分隔符, 将日期字符串分割为数组
tmpDate = tmpDate.split(/-|\/|\s/);
// 创建 Date 对象
var beginDate = new Date(tmpDate[0],tmpDate[1],tmpDate[2]);
var tmpDate2 = new Date();
var year = tmpDate2.getFullYear();
var month = tmpDate2.getMonth()+1;
var day = tmpDate2.getDate();
var nowDate = new Date(year,month,day);
if(beginDate > nowDate)
{
arguments.IsValid = false;
}
else
{
arguments.IsValid = true;
}
}
另外,下面是一个用于验证日期格式的正则表达式(比较完整):
^((((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-8]))|(((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))-0?2-29-))$
<asp:textbox id="BeginDate" ..../>
<asp:CustomValidator id="cvBeginDate" ControlToValidate=BeginDate runat="server" ErrorMessage="CustomValidator" ClientValidationFunction="ValidateBeginDate"></asp:CustomValidator>
JavaScript Code:
function ValidateBeginDate(source, arguments)
{
// 获取输入框数值
var tmpDate = arguments.Value;
// 对字符串进行处理
// 以 - / 或 空格 为分隔符, 将日期字符串分割为数组
tmpDate = tmpDate.split(/-|\/|\s/);
// 创建 Date 对象
var beginDate = new Date(tmpDate[0],tmpDate[1],tmpDate[2]);
var tmpDate2 = new Date();
var year = tmpDate2.getFullYear();
var month = tmpDate2.getMonth()+1;
var day = tmpDate2.getDate();
var nowDate = new Date(year,month,day);
if(beginDate > nowDate)
{
arguments.IsValid = false;
}
else
{
arguments.IsValid = true;
}
}
另外,下面是一个用于验证日期格式的正则表达式(比较完整):
^((((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-8]))|(((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))-0?2-29-))$

浙公网安备 33010602011771号