您的位置:首页 > 其它

对字符串的综合处理的几个方法

2007-04-03 02:02 489 查看
这个几个方法就是对输入的字符串进行处理

第一个是防止sql注入式攻击的

public static string ConvertSql(string str)
{
str = str.Trim();
str = str.Replace("'", "''");
str = str.Replace(";--", "");
str = str.Replace("=", "");
str = str.Replace(" or ", "");
str = str.Replace(" and ", "");

return str;
}

第二个是计算占用的空间大小的

/// <summary>
/// 格式化占用空间大小的输出
/// </summary>
/// <param name="size">大小</param>
/// <returns>返回 String</returns>
public static string FormatNUM(long size)
{
decimal NUM;
string strResult;

if (size > 1073741824)
{

NUM = (Convert.ToDecimal(size) / Convert.ToDecimal(1073741824));
strResult = NUM.ToString("N") + " M";
}
else if (size > 1048576)
{
NUM = (Convert.ToDecimal(size) / Convert.ToDecimal(1048576));
strResult = NUM.ToString("N") + " M";
}
else if (size > 1024)
{
NUM = (Convert.ToDecimal(size) / Convert.ToDecimal(1024));
strResult = NUM.ToString("N") + " KB";
}
else
{
strResult = size + " 字节";
}

return strResult;
}

另外给上格式说明:

格式化数值:有时,我们可能需要将数值以一定的格式来呈现,就需要对数值进行格式化。我们使用格式字符串指定格式。格式字符串采用以下形式:Axx,其中 A 为格式说明符,指定格式化类型,xx 为精度说明符,控制格式化输出的有效位数或小数位数。

格式说明符
说明
示例
输出
C
货币
2.5.ToString("C")
¥2.50
D
十进制数
25.ToString("D5")
00025
E
科学型
25000.ToString("E")
2.500000E+005
F
固定点
25.ToString("F2")
25.00
G
常规
2.5.ToString("G")
2.5
N
数字
2500000.ToString("N")
2,500,000.00
X
十六进制
255.ToString("X")
FF
第三个是判断是否合格的电邮和地址url的

public static bool IsValidEmail(string email)
{
return Regex.IsMatch(email, @"^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,3}|[0-9]{1,3})(\]?)$");
}

public static bool IsValidURL(string url)
{
return Regex.IsMatch(url, @"^(http|https|ftp)\://[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}(:[a-zA-Z0-9]*)?/?([a-zA-Z0-9\-\._\?\,\'/\\\+&%\$#\=~])*[^\.\,\)\(\s]$");
}

第四个是判断是否是int型,是否是数字,

/// <summary>
/// 判断字符串是否为Int类型的
/// </summary>
/// <param name="val"></param>
/// <returns></returns>
public static bool IsValidInt(string val)
{
return Regex.IsMatch(val, @"^[1-9]\d*\.?[0]*$");
}

/// <summary>
/// 检测字符串是否全为正整数
/// </summary>
/// <param name="str"></param>
/// <returns></returns>
public static bool IsNum(string str)
{
bool blResult = true;//默认状态下是数字

if (str == "")
blResult = false;
else
{
foreach (char Char in str)
{
if (!char.IsNumber(Char))
{
blResult = false;
break;
}
}
if (blResult)
{
if (int.Parse(str) == 0)
blResult = false;
}
}
return blResult;
}

/// <summary>
/// 检测字符串是否全为数字型
/// </summary>
/// <param name="str"></param>
/// <returns></returns>
public static bool IsDouble(string str)
{
bool blResult = true;//默认状态下是数字

if (str == "")
blResult = false;
else
{
foreach (char Char in str)
{
if (!char.IsNumber(Char) && Char.ToString() != "-")
{
blResult = false;
break;
}
}
}
return blResult;
}

还有其他的几个

/// <summary>
/// 返回字符串的真实长度,一个汉字字符相当于两个单位长度
/// </summary>
/// <param name="str">指定字符串</param>
/// <returns></returns>
public static int Len(string str)
{
int intResult = 0;

foreach (char Char in str)
{
if ((int)Char > 127)
intResult += 2;
else
intResult++;
}
return intResult;
}

本文使用Blog_Backup未注册版本导出,请到soft.pt42.com注册。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: