public class StrHelper{ PRivate static string passWord;//加密字符串 /// <summary> /// 判断输入是否数字 /// </summary> /// <param name="num">要判断的字符串</param> /// <returns></returns> static public bool VldInt(string num) { #region int ResultNum; return int.TryParse(num, out ResultNum); #endregion } /// <summary> /// 返回文本编辑器替换后的字符串 /// </summary> /// <param name="str">要替换的字符串</param> /// <returns></returns> static public string GetHtmlEditReplace(string str) { #region return str.Replace("'", "’").Replace("", " ").Replace(",", ",").Replace("%", "%"). Replace("script", "").Replace(".js", ""); #endregion } /// <summary> /// 截取字符串函数 /// </summary> /// <param name="str">所要截取的字符串</param> /// <param name="num">截取字符串的长度</param> /// <returns></returns> static public string GetSubString(string str, int num) { #region return (str.Length > num) ? str.Substring(0, num) + "..." : str; #endregion } /// <summary> /// 截取字符串优化版 /// </summary> /// <param name="stringToSub">所要截取的字符串</param> /// <param name="length">截取字符串的长度</param> /// <returns></returns> public static string GetFirstString(string stringToSub, int length) { #region var regex = new Regex("[/u4e00-/u9fa5]+", RegexOptions.Compiled); var stringChar = stringToSub.ToCharArray(); var sb = new StringBuilder(); var nLength = 0; var isCut = false; for (var i = 0; i < stringChar.Length; i++) { if (regex.IsMatch((stringChar[i]).ToString())) { sb.Append(stringChar[i]); nLength += 2; } else { sb.Append(stringChar[i]); nLength = nLength + 1; } if (nLength > length) { isCut = true; break; } } if (isCut) return sb.ToString() + ".."; else return sb.ToString(); #endregion } /// <summary> /// 过滤输入信息 /// </summary> /// <param name="text">内容</param> /// <param name="maxLength">最大长度</param> /// <returns></returns> public static string InputText(string text, int maxLength) { #region text = text.Trim(); if (string.IsNullOrEmpty(text)) return string.Empty; if (text.Length > maxLength) text = text.Substring(0, maxLength); text = Regex.Replace(text, "[//s]{2,}", " ");//two or more spaces text = Regex.Replace(text, "(<[b|B][r|R]/*>)+|(<[p|P](.|//n)*?>)", "/n");//<br> text = Regex.Replace(text, "(//s*&[n|N][b|B][s|S][p|P];//s*)+", " ");// text = Regex.Replace(text, "<(.|//n)*?>", string.Empty);//any other tags text = text.Replace("'", "''"); return text; #endregion } /// <summary> /// 生成随机数 /// </summary> /// <returns></returns> private string GenerateCheckCode() { #region int number; char code; string checkCode = String.Empty; System.Random random = new Random(); for (int i = 0; i < 5; i++) { number = random.Next(); if (number % 2 == 0) code = (char)('0' + (char)(number % 10)); else code = (char)('A' + (char)(number % 26)); checkCode += code.ToString(); } HttpContext.Current.Response.Cookies.Add(new HttpCookie("CheckCode", checkCode)); return checkCode; #endregion } /// <summary> /// 生成验证码图片 /// </summary> public void CreateCheckCodeImage() { #region string checkCode = GenerateCheckCode(); if (checkCode == null || checkCode.Trim() == String.Empty) return; System.Drawing.Bitmap image = new System.Drawing.Bitmap((int)Math.Ceiling((checkCode.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); } var font = new Font("Arial", 12, (FontStyle.Bold | 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(checkCode, font, brush, 2, 2); //画图片的前景噪音点 for (int i = 0; i < 150; 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); var ms = new MemoryStream(); image.Save(ms, ImageFormat.Gif); HttpContext.Current.Response.ClearContent(); HttpContext.Current.Response.ContentType = "image/Gif"; HttpContext.Current.Response.BinaryWrite(ms.ToArray()); } finally { g.Dispose(); image.Dispose(); } #endregion } #region 生成指定位数随机数 private static char[] constant = { '0','1','2','3','4','5','6','7','8','9', 'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z', 'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z' }; public static string GenerateRandom(int Length) { var newRandom = new StringBuilder(62); var rd = new Random(); for (int i = 0; i < Length; i++) { newRandom.Append(constant[rd.Next(62)]); } return newRandom.ToString(); } public static string GetNumRandom(int Length) { var newRandom = new StringBuilder(10); char[] NumStr={'0','1','2','3','4','5','6','7','8','9'}; var rd = new Random(); for (int i = 0; i < Length; i++) { newRandom.Append(constant[rd.Next(10)]); } return newRandom.ToString(); } #endregion /// <summary> /// 获取汉字第一个拼音 /// </summary> /// <param name="input"></param> /// <returns></returns> static public string getSpells(string input) { #region int len = input.Length; string reVal = ""; for (int i = 0; i < len; i++) { reVal += getSpell(input.Substring(i, 1)); } return reVal; #endregion } static public string getSpell(string cn) { #region byte[] arrCN = Encoding.Default.GetBytes(cn); 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) });
新闻热点
疑难解答