日期:2014-05-18  浏览次数:20764 次

100分 textbox判断日期问题
判断textBox的数据是日期型
我要代码   谢谢  
代码可用的最少70分

------解决方案--------------------
^(\\d{2}|\\d{4})-((0([1-9]{1}))|(1[1|2]))-(([0-2]([1-9]{1}))|(3[0|1]))$
正则表达式
------解决方案--------------------
无论winform还是webform,都有日期控件,那是最好的选择

如果一定不用

那么判断是否符合一定格式用正则表达式,需说明符合哪种格式

判断是否能转换为有效的日期用DateTime.TryParse

DateTime dt;
DateTime.TryParse(textBox1.Text, out dt);
if (dt != DateTime.MinValue)
{
MessageBox.Show(dt.ToString());
}
else
{
MessageBox.Show( "不是有效的日期 ");
}
------解决方案--------------------
楼上都说了...用一个js的日期控件挺好的
------解决方案--------------------

最好用asp.net提供的验证控件
=========================================
放一个验证控件CompareValidator,点CompareValidator属性然后把Operator改为DataTypeCheck,Type改为Date,ContralToValidate选择为要验证的文本框
------解决方案--------------------
先在winform中拖放一个errorProvider控件,然后编写textBox1的Validating事件,

private void textBox1_Validating(object sender, CancelEventArgs e)
{
//验证日期格式
if (Regex.IsMatch(textBox1.Text, @ "^(?:(?:(?:(?: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{2})(\/|-|\.)(?:(?:(?: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]))$ "))
errorProvider1.SetError(textBox1, " ");
else
errorProvider1.SetError(textBox1, "请输入正确的日期 ");
}
------解决方案--------------------
判断日期形的方法太多了
控件--dataTimePicker
脚本可以用正则表达式
后台.net有处理函数,也可以用正则表达式
------解决方案--------------------
想全面地考虑很难,用日期选择控件是最简单的,其次是用Convert.ToDataTime检测是否有异常,但会有性能损耗
------解决方案--------------------
使用验证控件吧,方便实用!
------解决方案--------------------
不要用户填,要他选日期撒。
------解决方案--------------------
^(\\d{2}|\\d{4})-((0([1-9]{1}))|(1[1|2]))-(([0-2]([1-9]{1}))|(3[0|1]))$
正则表达式
正解!!!1

------解决方案--------------------
#region 日期验证(YYYY-MM-DD)
/// <summary>
/// 日期验证(YYYY-MM-DD)
/// </summary>
/// <param name= "InputStr "> 要验证的字符 </param>
/// <returns> </returns>
public static bool ValidateDataTime(string InputStr)
{
if( InputStr != " " )
{
if (Regex.IsMatch(InputStr.Trim( ' '),@ "^((((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-))$ "))
return true ;
else
return false ;
}
return false ;
}
#endregion
调用:ValidateDataTime(TextBox1.Text)
------解决方案--------------------
有现成控件干吗不用???
------解决方案--------------------