目前我能想到有两种方法
方法一:利用正则表达式来判断
在本博转载的 判断年月日的正则表达式 中,有对符合这个要求的正则表达式.
//C# (vs2005)
using System.Text.RegularExpressions;
protected Boolean isLegalCriterion(string strDateTime)
{
Boolean bRtn = false;
string strPattern = regularExpression; //简单起见,就不写那个超长的表达式了.
bRtn = Regex.IsMatch(strDateTime, strPattern);
return bRtn;
}
protected void fun(other parameter)
{
if(false == isLegalCriterion(this.txtBDateTime.Text.Trim())
{
//some code here
}
else
{
//some code here
}
}
方法二:利用C#的数据类型转换
protected void fun(other parameter)
{
DateTime dtDateTime = new DateTime();
try
{
dtDateTime = Convert.ToDateTime(this.txtBDateTime.Text.Trim());
//some code here
}
catch(Exception ex)
{
//some code here
}
}
两种方法之简单比较.
方法一若正则表达式能写正确,则不会产生任何问题
而方法二,通过异常来处理输入不正确的情况,个人感觉不太踏实,并且在输入像(2009/05/15 14:05:01:001)这样之类的字符时也能能过,但是这明显是不符合我们的要求的.
所以,利用方法一较好,虽然那个正则表达式很难写.