zoukankan      html  css  js  c++  java
  • C#中几个正则表达式匹配输入字符的函数

        以下几个函数主要是利用正则表达式格式化用户输入的不当数据

    public static int ParseInt32(string value)
    {
        
    if (string.IsNullOrEmpty(value.Trim()))
            
    return 0;
        
    else
        {
            
    return int.Parse(value);  
        }
    }

    public static float ParseFloat(string value)
    {
        
    if (string.IsNullOrEmpty(value.Trim()))
            
    return 0f;
        
    else
        {
            
    return float.Parse(value);
        }
    }

    /// <summary>
    /// 功能:将字符转换为单精度型,正则表达式匹配速度比较慢,慎用。
    /// 建议在外部输入的数据(可能是不安全的数据)时使用
    /// 作者:胡进平
    /// 日期:2008-9-12
    /// </summary>
    /// <param name="value">要转换的字符</param>
    /// <param name="isStrict">是否需要严格判断</param>
    /// <returns></returns>
    public static float ParseFloat(string value,bool isStrict)
    {
        
    if (!isStrict) return ParseFloat(value);

        
    if (string.IsNullOrEmpty(value.Trim()))
            
    return 0f;
        
    else
        {
            Regex rx 
    = new Regex(@"(-?\d+\.\d*)|(-?\d+)", RegexOptions.Compiled | RegexOptions.IgnoreCase);
            
    if (rx.IsMatch(value))
            {
                MatchCollection matches 
    = rx.Matches(value);
                
    return Convert.ToSingle(matches[0].Value);
            }
            
    return 0f;
        }
    }

    /// <summary>
    /// 功能:将字符转换为整型,正则表达式匹配速度比较慢,慎用
    /// 建议在外部输入的数据(可能是不安全的数据)时使用
    /// 作者:胡进平
    /// 日期:2008-9-12
    /// </summary>
    /// <param name="value">要转换的字符</param>
    /// <param name="isStrict">是否需要严格判断</param>
    /// <returns></returns>
    public static int ParseInt32(string value,bool isStrict)
    {
        
    if (!isStrict) return ParseInt32(value);

        
    if (string.IsNullOrEmpty(value.Trim()))
            
    return 0;
        
    else
        {
            Regex rx 
    = new Regex(@"-?\d+\.\d*", RegexOptions.Compiled | RegexOptions.IgnoreCase);
            
    if (rx.IsMatch(value))
            {
                MatchCollection matches 
    = rx.Matches(value);
                
    string prefix = matches[0].Value.Split('.')[0];
                
    return Convert.ToInt32(prefix);
            }
            rx 
    = new Regex(@"-?\d+", RegexOptions.Compiled | RegexOptions.IgnoreCase);
            
    if (rx.IsMatch(value))
            {
                MatchCollection matches 
    = rx.Matches(value);
                
    return Convert.ToInt32(matches[0].Value);
            }
            
    return 0;
        }
    }
    /// <summary>
    /// 功能:将字符转换为双精度型
    /// 作者:胡进平
    /// 日期:2008-9-12
    /// </summary>
    /// <param name="value"></param>
    /// <returns></returns>
    public static double ParseDobule(string value)
    {
        
    if (string.IsNullOrEmpty(value.Trim()))
            
    return 0;
        
    else
        {
            Regex rx 
    = new Regex(@"(-?\d+\.\d*)|(-?\d+)", RegexOptions.Compiled | RegexOptions.IgnoreCase);
            
    if (rx.IsMatch(value))
            {
                MatchCollection matches 
    = rx.Matches(value);
                
    return Convert.ToDouble(matches[0].Value);
            }
            
    return 0;
        }
    }
    public static int ParseInt32(string value)
    {
        
    if (string.IsNullOrEmpty(value.Trim()))
            
    return 0;
        
    else
        {
            
    return int.Parse(value);  
        }
    }

    public static float ParseFloat(string value)
    {
        
    if (string.IsNullOrEmpty(value.Trim()))
            
    return 0f;
        
    else
        {
            
    return float.Parse(value);
        }
    }

    /// <summary>
    /// 功能:将字符转换为单精度型,正则表达式匹配速度比较慢,慎用。
    /// 建议在外部输入的数据(可能是不安全的数据)时使用
    /// 作者:胡进平
    /// 日期:2008-9-12
    /// </summary>
    /// <param name="value">要转换的字符</param>
    /// <param name="isStrict">是否需要严格判断</param>
    /// <returns></returns>
    public static float ParseFloat(string value,bool isStrict)
    {
        
    if (!isStrict) return ParseFloat(value);

        
    if (string.IsNullOrEmpty(value.Trim()))
            
    return 0f;
        
    else
        {
            Regex rx 
    = new Regex(@"(-?\d+\.\d*)|(-?\d+)", RegexOptions.Compiled | RegexOptions.IgnoreCase);
            
    if (rx.IsMatch(value))
            {
                MatchCollection matches 
    = rx.Matches(value);
                
    return Convert.ToSingle(matches[0].Value);
            }
            
    return 0f;
        }
    }

    /// <summary>
    /// 功能:将字符转换为整型,正则表达式匹配速度比较慢,慎用
    /// 建议在外部输入的数据(可能是不安全的数据)时使用
    /// 作者:胡进平
    /// 日期:2008-9-12
    /// </summary>
    /// <param name="value">要转换的字符</param>
    /// <param name="isStrict">是否需要严格判断</param>
    /// <returns></returns>
    public static int ParseInt32(string value,bool isStrict)
    {
        
    if (!isStrict) return ParseInt32(value);

        
    if (string.IsNullOrEmpty(value.Trim()))
            
    return 0;
        
    else
        {
            Regex rx 
    = new Regex(@"-?\d+\.\d*", RegexOptions.Compiled | RegexOptions.IgnoreCase);
            
    if (rx.IsMatch(value))
            {
                MatchCollection matches 
    = rx.Matches(value);
                
    string prefix = matches[0].Value.Split('.')[0];
                
    return Convert.ToInt32(prefix);
            }
            rx 
    = new Regex(@"-?\d+", RegexOptions.Compiled | RegexOptions.IgnoreCase);
            
    if (rx.IsMatch(value))
            {
                MatchCollection matches 
    = rx.Matches(value);
                
    return Convert.ToInt32(matches[0].Value);
            }
            
    return 0;
        }
    }
    /// <summary>
    /// 功能:将字符转换为双精度型
    /// 作者:胡进平
    /// 日期:2008-9-12
    /// </summary>
    /// <param name="value"></param>
    /// <returns></returns>
    public static double ParseDobule(string value)
    {
        
    if (string.IsNullOrEmpty(value.Trim()))
            
    return 0;
        
    else
        {
            Regex rx 
    = new Regex(@"(-?\d+\.\d*)|(-?\d+)", RegexOptions.Compiled | RegexOptions.IgnoreCase);
            
    if (rx.IsMatch(value))
            {
                MatchCollection matches 
    = rx.Matches(value);
                
    return Convert.ToDouble(matches[0].Value);
            }
            
    return 0;
        }
    }
  • 相关阅读:
    关于vs的网站发布
    gaga...
    将gridView中的数据导出 并保存到excel中
    ASP.NET 2.0 Treeview Checkboxes Check All Javascript
    写一个自动编号的存储过程
    获取一个部门的所有下级部门
    相同则写入组合
    jquery html form
    repeater合并单元格
    VS2010 快捷键大全
  • 原文地址:https://www.cnblogs.com/jackhuclan/p/1297780.html
Copyright © 2011-2022 走看看