c# 验证数字和日期的方法与实现代码
本文导语: 1、验证数字 代码示例: static bool IsNumeric(string str) { if(str==null||str.Length==0) return false; foreach(char c in str) { if(!char.InNumber(c)) { return false; } } return true; } //正则表达写法 static bool IsNumeric(string str) ...
1、验证数字
{
if(str==null||str.Length==0)
return false;
foreach(char c in str)
{
if(!char.InNumber(c))
{
return false;
}
}
return true;
}
//正则表达写法
static bool IsNumeric(string str)
{
System.Text.RegularExpressions.Regex reg1= new System.Text.RegularExpressions.Regex(@"^[-]?d+[.]?d*$");
}
2、验证日期
/**////
/// 判断用户输入是否为日期
///
///
///
/// by http://www.
/// 可判断格式如下(其中-可替换为/,不影响验证)
/// YYYY | YYYY-MM | YYYY-MM-DD | YYYY-MM-DD HH:MM:SS | YYYY-MM-DD HH:MM:SS.FFF
///
public static bool IsDateTime(string strValue)
{
if( null == strValue )
{
return false;
}
string regexDate = @"[1-2]{1}[0-9]{3}((-|/){1}(([0]?[1-9]{1})|(1[0-2]{1}))((-|/){1}((([0]?[1-9]{1})|([1-2]{1}[0-9]{1})|(3[0-1]{1})))( (([0-1]{1}[0-9]{1})|2[0-3]{1}):([0-5]{1}[0-9]{1}):([0-5]{1}[0-9]{1})(.[0-9]{3})?)?)?)?$";
if ( Regex.IsMatch(strValue,regexDate) )
{
//以下各月份日期验证,保证验证的完整性
int _IndexY = -1;
int _IndexM = -1;
int _IndexD = -1;
if ( -1 != (_IndexY = strValue.IndexOf("-")) )
{
_IndexM = strValue.IndexOf("-",_IndexY + 1);
_IndexD = strValue.IndexOf(":");
}
else
{
_IndexY = strValue.IndexOf("/");
_IndexM = strValue.IndexOf("/",_IndexY + 1);
_IndexD = strValue.IndexOf(":");
}
//不包含日期部分,直接返回true
if ( -1 == _IndexM )
return true;
if ( -1 == _IndexD )
{
_IndexD = strValue.Length + 3;
}
int iYear = Convert.ToInt32(strValue.Substring(0,_IndexY));
int iMonth = Convert.ToInt32(strValue.Substring(_IndexY + 1,_IndexM - _IndexY - 1));
int iDate = Convert.ToInt32(strValue.Substring(_IndexM + 1,_IndexD - _IndexM - 4));
//判断月份日期
if ( ( iMonth < 8 && 1 == iMonth % 2 ) || ( iMonth > 8 && 0 == iMonth % 2 ) )
{
if ( iDate < 32 )
return true;
}
else
{
if ( iMonth != 2 )
{
if ( iDate < 31 )
return true;
}
else
{
//闰年
if ( ( 0 == iYear % 400 ) || ( 0 == iYear % 4 && 0 < iYear % 100 ) )
{
if ( iDate < 30 )
return true;
}
else
{
if ( iDate < 29 )
return true;
}
}
}
}
return false;
}