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;
    }
}
原文地址:https://www.cnblogs.com/jackhuclan/p/1297780.html