c# 验证数字和日期的方法与实现代码

发布时间:2019-09-09编辑:脚本学堂
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)
{
 System.Text.RegularExpressions.Regex reg1= new System.Text.RegularExpressions.Regex(@"^[-]?d+[.]?d*$"); 
}

2、验证日期
 

复制代码 代码示例:

/**//// <summary>
  /// 判断用户输入是否为日期
  /// </summary>
  /// <param name="strValue"></param>
  /// <returns></returns>
  /// <remarks> by http://www.jb200.com
  /// 可判断格式如下(其中-可替换为/,不影响验证)
  /// YYYY | YYYY-MM | YYYY-MM-DD | YYYY-MM-DD HH:MM:SS | YYYY-MM-DD HH:MM:SS.FFF
  /// </remarks>
  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;
  }