C#中几个正则表达式匹配输入字符的函数
2008-09-24 10:57
232 查看
以下几个函数主要是利用正则表达式格式化用户输入的不当数据
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;
}
}
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;
}
}
相关文章推荐
- C#正则表达式匹配任意字符
- [转帖]C#如何使用正则表达式来校验字段串输入的系列函数
- 请实现一个函数用来匹配包括'.'和'*'的正则表达式。模式中的字符'.'表示任意一个字符,而'*'表示它前面的字符可以出现任意次(包含0次)。 在本题中,匹配是指字符串的所有字符匹配整个模式。例如,字
- 请实现一个函数用来匹配包括'.'和'*'的正则表达式。模式中的字符'.'表示任意一个字符,而'*'表示它前面的字符可以出现任意次(包含0次)。 在本题中,匹配是指字符串的所有字符匹配整个模式。
- js 正则表达式 匹配除汉字,字母,数字,逗号,句号外的特殊字符(用来规范输入内容)
- C#中获取匹配正则表达式的字符
- C#正则表达式匹配任意字符
- C# 正则表达式 过滤危险字符函数代码 防SQL注入 很全面的SQL关键字过滤
- 几个范畴中的字符替换(正则表达式和函数的结合运用)
- C#(ASP.NET)正则表达式 过滤危险字符函数代码 防SQL注入 很全面的SQL关键字过滤
- C#中获取匹配正则表达式的字符
- 请实现一个函数用来匹配包括'.'和'*'的正则表达式。模式中的字符'.'表示任意一个字符,而'*'表示它前面的字符可以出现任意次(包含0次)。 在本题中,匹配是指字符串的所有字符匹配整个模式。例如,字符串"aaa"与模式"a.a"和"ab*ac*a"匹配,但是与"aa.a"和"ab*a"均不匹配
- C#中获取匹配正则表达式的字符
- 输入的字符匹配正整数 整数 正数 以及一些正则表达式的总结
- 请实现一个函数用来匹配包括'.'和'*'的正则表达式。模式中的字符'.'表示任意一个字符,而'*'表示它前面的字符可以出现任意次(包含0次)。 在本题中,匹配是指字符串的所有字符匹配整个模式。例如,字
- C#后台利用正则表达式查找匹配字符
- jQuery验证,匹配输入非中文的正则表达式,输入内容可以是包括空格等特殊字符的任何字符。
- 匹配Unicode字符的正则表达式
- delphi MatchesMask 使用正则表达式进行字符串匹配的函数
- 正则表达式,匹配中文字符、手机号、Email地址、网址URL、HTML标记、国内电...