📄 stringutil.cs
字号:
using System;
using System.Drawing;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Text.RegularExpressions;
using System.IO;
using System.Drawing.Imaging;
using System.Text;
using System.Web.Security;
namespace CommonUtility
{
/// 类说明:对一些字符串进行操作的类
/// 创建时间:2007-05-23
/// 创建人:许志强
public class StringUtil
{
private static string strPassWord; //加密字符串
/// 函数说明:判断输入是否数字
/// 参数说明:strNum:要判断的字符串
/// 创 建 人:许志强
/// 创建时间:2007-05-23
/// 返 回 值:是字符串返回真,否则为假
public static bool VldInt(string strNum)
{
try
{
Convert.ToInt32(strNum);
return true;
}
catch { return false; }
}
/// <summary>
/// 截取危险字符
/// </summary>
/// <param name="fString"></param>
/// <returns></returns>
public static string DeleteDangerString(string fString)
{
fString = fString.Replace(">", "");
fString = fString.Replace("<", "");
fString = fString.Replace("like", "");
fString = fString.Replace("where", "");
fString = fString.Replace("CHR(32)", "");
fString = fString.Replace("CHR(34)", "");
fString = fString.Replace("CHR(39)", "");
fString = fString.Replace("CHR(37)", "");
fString = fString.Replace("script", "");
return fString;
}
/// 函数说明:返回文本编辑器替换后的字符串
/// 参数说明:strStr:要替换的字符串
/// 创 建 人:许志强
/// 创建时间:2007-05-23
/// 返 回 值:替换后的字符串
public static string GetHtmlEditReplace(string strStr)
{
#region
return strStr.Replace("'", "''").Replace(" ", " ").Replace(",", ",").Replace("%", "%").Replace("script", "").Replace(".js", "");
#endregion
}
/// 函数说明:截取字符串函数
/// 参数说明:strStr:所要截取的字符串;iNum:截取字符串的长度
/// 创 建 人:许志强
/// 创建时间:2007-05-23
/// 返 回 值:截取后的字符串
public static string GetSubString(string strStr, int iNum)
{
return (strStr.Length > iNum) ? strStr.Substring(0, iNum) + "..." : strStr;
}
/// 函数说明:过滤输入信息
/// 参数说明:strText:内容;iMaxLength:最大长度
/// 创 建 人:许志强
/// 创建时间:2007-05-23
/// 返 回 值:过滤后的字符串
public static string InputText(string strText, int iMaxLength)
{
strText = strText.Trim();
if (string.IsNullOrEmpty(strText))
return string.Empty;
if (strText.Length > iMaxLength)
strText = strText.Substring(0, iMaxLength);
strText = Regex.Replace(strText, "[\\s]{2,}", " ");
strText = Regex.Replace(strText, "(<[b|B][r|R]/*>)+|(<[p|P](.|\\n)*?>)", "\n");
strText = Regex.Replace(strText, "(\\s*&[n|N][b|B][s|S][p|P];\\s*)+", " ");
strText = Regex.Replace(strText, "<(.|\\n)*?>", string.Empty);
strText = strText.Replace("'", "''");
return strText;
}
/// 函数说明:生成随机数
/// 参数说明:
/// 创 建 人:许志强
/// 创建时间:2007-05-23
/// 返 回 值:生成随机数字符串
private string GenerateCheckCode()
{
int iNumber;
char chrCode;
string strCheckCode = String.Empty;
System.Random random = new Random();
for (int i = 0; i < 5; i++)
{
iNumber = random.Next();
if (iNumber % 2 == 0)
chrCode = (char)('0' + (char)(iNumber % 10));
else
chrCode = (char)('A' + (char)(iNumber % 26));
strCheckCode += chrCode.ToString();
}
HttpContext.Current.Response.Cookies.Add(new HttpCookie("CheckCode", strCheckCode));
return strCheckCode;
}
/// 函数说明:生成验证码图片
/// 参数说明:
/// 创 建 人:许志强
/// 创建时间:2007-05-23
/// 返 回 值:
public void CreateCheckCodeImage()
{
string strCheckCode = GenerateCheckCode();
if (strCheckCode == null || strCheckCode.Trim() == String.Empty)
return;
System.Drawing.Bitmap image = new System.Drawing.Bitmap((int)Math.Ceiling((strCheckCode.Length * 12.5)), 22);
Graphics g = Graphics.FromImage(image);
try
{
//生成随机生成器
Random random = new Random();
//清空图片背景色
g.Clear(Color.White);
//画图片的背景噪音线
for (int i = 0; i < 25; i++)
{
int x1 = random.Next(image.Width);
int x2 = random.Next(image.Width);
int y1 = random.Next(image.Height);
int y2 = random.Next(image.Height);
g.DrawLine(new Pen(Color.Silver), x1, y1, x2, y2);
}
Font font = new System.Drawing.Font("Arial", 12, (System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Italic));
System.Drawing.Drawing2D.LinearGradientBrush brush = new System.Drawing.Drawing2D.LinearGradientBrush(new Rectangle(0, 0, image.Width, image.Height), Color.Blue, Color.DarkRed, 1.2f, true);
g.DrawString(strCheckCode, font, brush, 2, 2);
//画图片的前景噪音点
for (int i = 0; i < 100; i++)
{
int x = random.Next(image.Width);
int y = random.Next(image.Height);
image.SetPixel(x, y, Color.FromArgb(random.Next()));
}
//画图片的边框线
g.DrawRectangle(new Pen(Color.Silver), 0, 0, image.Width - 1, image.Height - 1);
System.IO.MemoryStream ms = new System.IO.MemoryStream();
image.Save(ms, System.Drawing.Imaging.ImageFormat.Gif);
HttpContext.Current.Response.ClearContent();
HttpContext.Current.Response.ContentType = "image/Gif";
HttpContext.Current.Response.BinaryWrite(ms.ToArray());
}
finally
{
g.Dispose();
image.Dispose();
}
}
/// 函数说明:获取汉字第一个拼音
/// 参数说明:
/// 创 建 人:许志强
/// 创建时间:2007-05-23
/// 返 回 值:获取汉字第一个拼音字符串
public static string getSpells(string strInput)
{
int iLen = strInput.Length;
string strReVal = "";
for (int i = 0; i < iLen; i++)
{
strReVal += getSpell(strInput.Substring(i, 1));
}
return strReVal;
}
/// 函数说明:获取汉字第一个拼音--- 子函数
/// 参数说明:
/// 创 建 人:许志强
/// 创建时间:2007-05-23
/// 返 回 值:获取汉字第一个拼音字符串
public static string getSpell(string strCn)
{
byte[] arrCN = Encoding.Default.GetBytes(strCn);
if (arrCN.Length > 1)
{
int area = (short)arrCN[0];
int pos = (short)arrCN[1];
int code = (area << 8) + pos;
int[] areacode = { 45217, 45253, 45761, 46318, 46826, 47010, 47297, 47614, 48119, 48119, 49062, 49324, 49896, 50371, 50614, 50622, 50906, 51387, 51446, 52218, 52698, 52698, 52698, 52980, 53689, 54481 };
for (int i = 0; i < 26; i++)
{
int max = 55290;
if (i != 25) max = areacode[i + 1];
if (areacode[i] <= code && code < max)
{
return Encoding.Default.GetString(new byte[] { (byte)(65 + i) });
}
}
return "?";
}
else return strCn;
}
/// 函数说明:半角转全角
/// 参数说明:
/// 创 建 人:许志强
/// 创建时间:2007-05-23
/// 返 回 值:全角字符串
public static string GetQuanJiao(string strBJstr)
{
char[] c = strBJstr.ToCharArray();
for (int i = 0; i < c.Length; i++)
{
byte[] b = System.Text.Encoding.Unicode.GetBytes(c, i, 1);
if (b.Length == 2)
{
if (b[1] == 0)
{
b[0] = (byte)(b[0] - 32);
b[1] = 255;
c[i] = System.Text.Encoding.Unicode.GetChars(b)[0];
}
}
}
string strNew = new string(c);
return strNew;
}
/// 函数说明:全角转半角
/// 参数说明:
/// 创 建 人:许志强
/// 创建时间:2007-05-23
/// 返 回 值:半角字符串
static public string GetBanJiao(string strQJstr)
{
char[] c = strQJstr.ToCharArray();
for (int i = 0; i < c.Length; i++)
{
byte[] b = System.Text.Encoding.Unicode.GetBytes(c, i, 1);
if (b.Length == 2)
{
if (b[1] == 255)
{
b[0] = (byte)(b[0] + 32);
b[1] = 0;
c[i] = System.Text.Encoding.Unicode.GetChars(b)[0];
}
}
}
string strNew = new string(c);
return strNew;
}
/// 枚举说明:加密的类型
/// 创 建 人:许志强
/// 创建时间:2007-05-23
public enum PasswordType
{
SHA1,
MD5
}
/// 函数说明:字符串加密
/// 参数说明:strPasswordString:要加密的字符串;strPasswordFormat:要加密的类别
/// 创 建 人:许志强
/// 创建时间:2007-05-23
/// 返 回 值:加密后的字符串
static public string EncryptPassword(string strPasswordString, string strPasswordFormat)
{
switch (strPasswordFormat)
{
case "SHA1":
{
strPassWord = FormsAuthentication.HashPasswordForStoringInConfigFile(strPasswordString, "SHA1");
break;
}
case "MD5":
{
strPassWord = FormsAuthentication.HashPasswordForStoringInConfigFile(strPasswordString, "MD5");
break;
}
default:
{
strPassWord = string.Empty;
break;
}
}
return strPassWord;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -