/*
* 扩展NameValueCollection
* 调用方法:Request.QueryString.IsNumeric("ID")
*/
using System;
using System.Collections.Specialized;
using System.Text.RegularExpressions;
namespace App
{
/// <summary>
/// 扩展 System.Collections.Specialized.NameValueCollection
/// </summary>
public static class NameValueCollectionExtensions
{
/// <summary>
/// 使用正表达式来验证指定值
/// </summary>
public static bool IsMatch(this NameValueCollection nv, string key, string pattern)
{
return Regex.IsMatch(nv[key] ?? "", pattern, RegexOptions.IgnoreCase | RegexOptions.IgnorePatternWhitespace);
}
/// <summary>
/// 检查指定值是否为数字
/// </summary>
public static bool IsNumeric(this NameValueCollection nv, string key)
{
return Regex.IsMatch(nv[key] ?? "", @"^\d{1,}$");
}
/// <summary>
/// 以string类型返回指定值,如值非纯数字则返回空字符串
/// </summary>
public static string ToNumeric(this NameValueCollection nv, string key)
{
return nv.IsNumeric(key) ? nv[key].Trim() : "";
}
/// <summary>
/// 以int类型返回指定值
/// </summary>
public static int ToInt(this NameValueCollection nv, string key)
{
int val = 0;
int.TryParse(nv[key], out val);
return val;
}
/// <summary>
/// 以long类型返回指定值
/// </summary>
public static long ToLong(this NameValueCollection nv, string key)
{
long val = 0;
long.TryParse(nv[key], out val);
return val;
}
/// <summary>
/// 以short类型返回指定值
/// </summary>
public static short ToShort(this NameValueCollection nv, string key)
{
short val = 0;
short.TryParse(nv[key], out val);
return val;
}
/// <summary>
/// 以byte类型返回指定值
/// </summary>
public static byte ToByte(this NameValueCollection nv, string key)
{
byte val = 0;
byte.TryParse(nv[key], out val);
return val;
}
/// <summary>
/// 返回安全的SQL字符串
/// </summary>
public static string ToVarchar(this NameValueCollection nv, string key)
{
//string val = nv[key] ?? "";
//val = val.Replace("'", "''");
return (nv[key] ?? "").Replace("'", "''");
}
/// <summary>
/// 以bool类型返回指定值
/// </summary>
public static bool ToBoolean(this NameValueCollection nv, string key)
{
bool val = false;
bool.TryParse(nv[key], out val);
return val;
}
/// <summary>
/// 检查指定值是否为DateTime类型
/// </summary>
public static bool IsDateTime(this NameValueCollection nv, string key)
{
DateTime date;
return (DateTime.TryParse(nv[key], out date));
}
/// <summary>
/// 以DateTime返回指定值,如指定值为非法日期则返回当前时间
/// </summary>
public static DateTime ToDateTimeOrNow(this NameValueCollection nv, string key)
{
DateTime date = DateTime.Now;
DateTime.TryParse(nv[key], out date);
return date;
}
/// <summary>
/// 以DateTime返回指定值,如指定值为非法日期则返回null
/// </summary>
public static DateTime? ToDateTimeOrNull(this NameValueCollection nv, string key)
{
DateTime date;
if (DateTime.TryParse(nv[key], out date))
return date;
else
return null;
}
}
}
还是这个界面比较清爽,呵呵……