前台js验证: <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="validateCode.aspx.cs" Inherits="practise.validateCode" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head runat="server"> <title></title> <mce:script type="text/javascript" language="javascript"><!-- function validateDate() { var t_date = document.getElementById("t_date").value; if (t_date != "" || t_date != null) { var dateReg = /^(/d{4})(-|//)(/d{1,2})/2(/d{1,2}) (/d{2})(:)(/d{2})/6(/d{2})$/; /*注: /d表示的是正整树 只能输入n位的数字:"^/d{n}$"。 只能输入至少n位的数字:"^/d{n,}$"。 只能输入m~n位的数字:。"^/d{m,n}$" 2表示第二个括号的内容,/2表示内容和(-|//)一样的,前面年和月用的什么,后面月和日也得用什么 6表示第六个括号的内容,/6表示内容和(:)一样的,前面时间和分用的什么,后面分和秒也得用什么 */ if (dateReg.test(t_date)) { var date = t_date.match(dateReg); if (date[1] < 1 || date[3] < 1 || date[4] < 1) { alert("日期需大于1!"); return false; } switch (parseInt(date[3])) { case 1: case 3: case 5: case 7: case 8: case 10: case 12: if (date[4] > 31) { alert("此月份最多只有31天!"); return false; } break; case 2: if ((date[1] % 4 == 0 && date[4] > 29) || (date[1] % 4 != 0 && date[4] > 28)) { alert("此年的二月份日期输入错误!"); return false; } break; case 4: case 6: case 9: case 11: if (date[4] > 30) { alert("此月份最多只有30天!"); return false; } break; default: alert("月份输入错误!"); return false; break; } if (date[5] > 24 || date[7] > 60 || date[8] > 60) { alert("时间输入错误!"); return false; } } else { alert("日期输入错误,格式:0000-00-00 00:00:00!"); return false; } } alert("时间:" + t_date); return true; } // --></mce:script></head><body> <form id="form1" runat="server"> <asp:ScriptManager ID="ScriptManager1" runat="server" /> <div> <input type="text" id="t_date" /> <input type="button" id="b_validate" value="javaScript验证" runat="server" οnclick="validateDate();" /> <hr style="width: 100%; height: 5px; background-color: Gray" /> 开始时间:<asp:TextBox ID="tb_startDate" runat="server" /><br /> 结束时间:<asp:TextBox ID="tb_endDate" runat="server" /><br /> <asp:Button ID="btn_validate" Text="后台服务器端验证" runat="server" OnClick="btn_validate_Click" /> </div> </form></body></html> 后台验证: using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.UI;using System.Web.UI.WebControls;namespace practise{ public partial class validateCode : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { ScriptManager1.RegisterAsyncPostBackControl(btn_validate); //ajax无刷新技术,在这里注册按钮这样就不用写updatePanel了 } /// <summary> /// 验证时间是否输入正确 /// </summary> /// <returns></returns> private bool validateDate(ref string message) { bool result = false; try { Convert.ToDateTime(tb_startDate.Text); try { Convert.ToDateTime(tb_endDate.Text); if (!string.IsNullOrEmpty(tb_startDate.Text) && !string.IsNullOrEmpty(tb_endDate.Text)) { DateTime maintainStartDateTime = Convert.ToDateTime(tb_startDate.Text); DateTime maintainEndDateTime = Convert.ToDateTime(tb_endDate.Text); if (maintainStartDateTime > maintainEndDateTime) { message = "开始日期不能大于结束日期!"; result = false; } else { result = true; } } } catch (Exception) { message = "结束时间输入错误!"; tb_endDate.Focus(); result = false; } } catch (Exception) { message = "开始时间输入错误!"; tb_startDate.Focus(); result = false; //throw;注:throw上面有处理就不用了 } return result; } protected void btn_validate_Click(object sender, EventArgs e) { string message = string.Empty; if (validateDate(ref message)) { ScriptManager.RegisterStartupScript(this, GetType(), "", "alert('ok!');", true); } else { ScriptManager.RegisterStartupScript(this, GetType(), "", "alert('" + message + "');", true); } } }}