1、校验整数的正则表达式,并从表达式中提取出数值2、校验浮点数的正则表达式,可包含小数点或不包含小数点,并从表达式中提取出有效浮点数;3、校验日期格式的正则表达式,可包含时分秒,并从表达式中提取出日期。

解决方案 »

  1.   

    /// <summary>
    /// 整数判断
    /// </summary>
    /// <param name="_s"></param>
    /// <returns></returns>
    public static bool IsInteger(string _s)
    {
    return Regex.IsMatch(_s,@"^[+-]{0,1}([1-7]?[0-8]?[0-9]{0,28}|[1-9][0-9]?|0)(\.0{0,28})$");
    } /// <summary>
    /// 非整数判断
    /// </summary>
    /// <param name="_s"></param>
    /// <returns></returns>
    public static bool IsNoIntNumber(string _s)
    {
    return Regex.IsMatch(_s,@"^[+-]{0,1}([1-7]?[0-8]?[0-9]{0,28}|[1-9][0-9]?|0)(|\.[0-9]{1,28})$");
    } /// <summary>
    /// 时间判断
    /// </summary>
    /// <param name="_s"></param>
    /// <returns></returns>
    public static bool IsTime(string _s)
    {
    string pattern = @"(\s(((0?[0-9])|([1-2][0-3]))\:([0-5]?[0-9])((\s)|(\:([0-5]?[0-9])))))?$";
    return Regex.IsMatch(_s,pattern);
    } /// <summary>
    /// 日期判断
    /// </summary>
    /// <param name="_s"></param>
    /// <returns></returns>
    public static bool IsDate(string _s)
    {
    if (_s.Length < 8)
    {
    return false;
    }
    string pattern = @"^((\d{2}(([02468][048])|([13579][26]))[\-\/\s]?((((0?[13578])|(1[02]))[\-\/\s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[\-\/\s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[\-\/\s]?((0?[1-9])|([1-2][0-9])))))|(\d{2}(([02468][1235679])|([13579][01345789]))[\-\/\s]?((((0?[13578])|(1[02]))[\-\/\s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[\-\/\s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[\-\/\s]?((0?[1-9])|(1[0-9])|(2[0-8]))))))";
    return Regex.IsMatch(_s,pattern);
    } /// <summary>
    /// 日期时间判断
    /// </summary>
    /// <param name="_s"></param>
    /// <returns></returns>
    public static bool IsDateTime(string _s)
    {
    if (_s.Length < 8)
    {
    return false;
    }
    string pattern = @"^((\d{2}(([02468][048])|([13579][26]))[\-\/\s]?((((0?[13578])|(1[02]))[\-\/\s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[\-\/\s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[\-\/\s]?((0?[1-9])|([1-2][0-9])))))|(\d{2}(([02468][1235679])|([13579][01345789]))[\-\/\s]?((((0?[13578])|(1[02]))[\-\/\s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[\-\/\s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[\-\/\s]?((0?[1-9])|(1[0-9])|(2[0-8]))))))";
    pattern +=  @"(\s(((0?[0-9])|([1-2][0-3]))\:([0-5]?[0-9])((\s)|(\:([0-5]{1}[0-9])))))$";
    return Regex.IsMatch(_s,pattern);
    }
      

  2.   

    IsInteger("12")怎么返回false呢?
      

  3.   

    IsInteger("3.")返回为true
    IsNoIntNumber("3.")返回为false
      

  4.   


    "^\\d+$"  //非负整数(正整数 + 0) 
    "^[0-9]*[1-9][0-9]*$"  //正整数 
    "^((-\\d+)|(0+))$"  //非正整数(负整数 + 0) 
    "^-[0-9]*[1-9][0-9]*$"  //负整数 
    "^-?\\d+$"    //整数 
    "^\\d+(\\.\\d+)?$"  //非负浮点数(正浮点数 + 0) 
    "^(([0-9]+\\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\\.[0-9]+)|([0-9]*[1-9][0-9]*$" //正浮点数 
    "^((-\\d+(\\.\\d+)?)|(0+(\\.0+)?))$"  //非正浮点数(负浮点数 + 0) 
    "^(-(([0-9]+\\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\\.[0-9]+)|([0-9]*[1-9][0-9]*)))$" /负浮点数 
    "^(-?\\d+)(\\.\\d+)?$"  //浮点数 
    "^[A-Za-z]+$"  //由26个英文字母组成的字符串 
    "^[A-Z]+$"  //由26个英文字母的大写组成的字符串 
    "^[a-z]+$"  //由26个英文字母的小写组成的字符串 
    "^[A-Za-z0-9]+$"  //由数字和26个英文字母组成的字符串 
    "^\\w+$"  //由数字、26个英文字母或者下划线组成的字符串 
    "^[\\w-]+(\\.[\\w-]+)*@[\\w-]+(\\.[\\w-]+)+$"    //email地址 
    "^[a-zA-z]+://(\\w+(-\\w+)*)(\\.(\\w+(-\\w+)*))*(\\?\\S*)?$"  //url
      

  5.   

    很麻烦啊,直接int.Paste("1234a"),如果成功就是正确的,出错就是错误的,很简单,其他的数据类型key同样处理。
      

  6.   

    pfworld(胡剑) 的判断整数也不行。
      

  7.   

    Sorry,
    pfworld(胡剑) 的判断整数已经OK。
      

  8.   

    1、校验整数的正则表达式,并从表达式中提取出数值
    ^-?\d*$
    2、校验浮点数的正则表达式,可包含小数点或不包含小数点,并从表达式中提取出有效浮点数;
    ^-?\d*(\.\d*)?$
    3、校验日期格式的正则表达式,可包含时分秒,并从表达式中提取出日期。
    这个比较麻烦 假期结束再告诉你 如果你等的到那时候的话
      

  9.   

    验证时间使用以下正则
    ^((((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))( (0?\d|1\d|2[0-4]):(0?\d|[1-5]\d):(0?\d|[1-5]\d))$验证格式为2006 10 15 20:20:20或2006-10-15 20:20:20
    组1里为得到的日期
      

  10.   

    ^((((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))( (0?\d|1\d|2[0-4]):(0?\d|[1-5]\d):(0?\d|[1-5]\d))?$
      

  11.   

    @"-?\d+"
    @"-?\d+(\.\d+)?"
    以上两个正则在提取时 如果存在负数 和容易和时间混淆,楼长注意
    日期如果只是判断不建议使用正则,建议先提取类似格式
    然后用DateTime.Parse(try上)进行判断