zoukankan      html  css  js  c++  java
  • StrHelper

    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)*?>)", "
    ");	//<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) });
                    }
                }
                return "?";
            }
            else return cn;
            #endregion
        }
    
        /// <summary>
        /// 半角转全角
        /// </summary>
        /// <param name="BJstr"></param>
        /// <returns></returns>
        static public string GetQuanJiao(string BJstr)
        {
            #region
            char[] c = BJstr.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;
    
            #endregion
        }
    
        /// <summary>
        /// 全角转半角
        /// </summary>
        /// <param name="QJstr"></param>
        /// <returns></returns>
        static public string GetBanJiao(string QJstr)
        {
            #region
            char[] c = QJstr.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;
            #endregion
        }
    
        #region 加密的类型
        /// <summary>
        /// 加密的类型
        /// </summary>
        public enum PasswordType
        {
            SHA1,
            MD5
        }
        #endregion
           
        /// <summary>
        /// 字符串加密
        /// </summary>
        /// <param name="PasswordString">要加密的字符串</param>
        /// <param name="PasswordFormat">要加密的类别</param>
        /// <returns></returns>
        static public string EncryptPassword(string PasswordString, PasswordType PasswordFormat)
        {
            #region
            switch (PasswordFormat)
            {
                case PasswordType.SHA1:
                    {
                        passWord = FormsAuthentication.HashPasswordForStoringInConfigFile(PasswordString, "SHA1");
                        break;
                    }
                case PasswordType.MD5:
                    {
                        passWord = FormsAuthentication.HashPasswordForStoringInConfigFile(PasswordString, "MD5").Substring(8, 16).ToLower();
                        break;
                    }
                default:
                    {
                        passWord = string.Empty;
                        break;
                    }
            }
            return passWord;
            #endregion
        }
    
        /// <summary>
        /// 字符串转换为 html
        /// </summary>
        /// <param name="str"></param>
        /// <returns></returns>
        public static string StringToHtml(string str)
        {
            #region
            str = str.Replace("&", "&");
            str = str.Replace(" ", " ");
            str = str.Replace("'", "''");
            str = str.Replace(""", """);
            str = str.Replace(" ", " ");
            str = str.Replace("<", "<");
            str = str.Replace(">", ">");
            str = str.Replace("
    ", "<br>");
    
            return str;
            #endregion
        }
    
        /// <summary>
        /// html转换成字符串
        /// </summary>
        /// <param name="strHtml"></param>
        /// <returns></returns>
        public static string HtmlToString(string strHtml)
        {
            #region
            strHtml = strHtml.Replace("<br>", "
    ");
            strHtml = strHtml.Replace(@"<br />", "
    ");
            strHtml = strHtml.Replace(@"<br/>", "
    ");
            strHtml = strHtml.Replace(">", ">");
            strHtml = strHtml.Replace("<", "<");
            strHtml = strHtml.Replace(" ", " ");
            strHtml = strHtml.Replace(""", """);
    
            strHtml = Regex.Replace(strHtml, @"</?[^>]+>", "", RegexOptions.IgnoreCase);
    
            return strHtml;
            #endregion
        }
    
        /// <summary>
        /// 获得中文星期表示形式
        /// </summary>
        /// <returns></returns>
        public static string GetChineseWeek(DateTime t)
        {
            #region
            string week = "";
    
            switch (t.DayOfWeek)
            {
                case DayOfWeek.Monday:
                    week = "一";
                    break;
                case DayOfWeek.Tuesday:
                    week = "二";
                    break;
                case DayOfWeek.Wednesday:
                    week = "三";
                    break;
                case DayOfWeek.Thursday:
                    week = "四";
                    break;
                case DayOfWeek.Friday:
                    week = "五";
                    break;
                case DayOfWeek.Saturday:
                    week = "六";
                    break;
                case DayOfWeek.Sunday:
                    week = "日";
                    break;
            }
    
            return "星期" + week;
            #endregion
        }
    
        /// <summary>
        /// 生成日期随机码
        /// </summary>
        /// <returns></returns>
        public static string GetRamCode()
        {
            #region
            return DateTime.Now.ToString("yyyyMMddHHmmssff"); 
            #endregion
        }
    
        /// <summary>
        /// 生成指定长度的字符串,即生成strLong个str字符串
        /// </summary>
        /// <param name="strLong">生成的长度</param>
        /// <param name="str">以str生成字符串</param>
        /// <returns></returns>
        public static string StringOfChar(int strLong, string str)
        {
            #region 
            string ReturnStr = string.Empty;
            for (int i = 0; i < strLong; i++)
            {
                ReturnStr += str;
            }        
            return ReturnStr; 
            #endregion
        }
    
        public static string FilterStr(string str)
        {  
              
            return str.Replace("'", " ").Replace(".", "").Replace("
    ", " ");
        }
    
        /// <summary>
        /// 生成条形码:如:bar_code("20070520122334", 20, 1, 1);
        /// </summary>
        /// <param name="str"></param>
        /// <param name="ch">度度</param>
        /// <param name="cw">线条宽度</param>
        /// <param name="type_code">是否输出文字1为输出</param>
        /// <returns></returns>
        public static string BarCode(object str, int ch, int cw, int type_code)
        {
            #region
            string strTmp = str.ToString();
            string code = strTmp;
            strTmp = strTmp.ToLower();
            int height = ch;
            int width = cw;
    
            strTmp = strTmp.Replace("0", "_|_|__||_||_|"); ;
            strTmp = strTmp.Replace("1", "_||_|__|_|_||");
            strTmp = strTmp.Replace("2", "_|_||__|_|_||");
            strTmp = strTmp.Replace("3", "_||_||__|_|_|");
            strTmp = strTmp.Replace("4", "_|_|__||_|_||");
            strTmp = strTmp.Replace("5", "_||_|__||_|_|");
            strTmp = strTmp.Replace("7", "_|_|__|_||_||");
            strTmp = strTmp.Replace("6", "_|_||__||_|_|");
            strTmp = strTmp.Replace("8", "_||_|__|_||_|");
            strTmp = strTmp.Replace("9", "_|_||__|_||_|");
            strTmp = strTmp.Replace("a", "_||_|_|__|_||");
            strTmp = strTmp.Replace("b", "_|_||_|__|_||");
            strTmp = strTmp.Replace("c", "_||_||_|__|_|");
            strTmp = strTmp.Replace("d", "_|_|_||__|_||");
            strTmp = strTmp.Replace("e", "_||_|_||__|_|");
            strTmp = strTmp.Replace("f", "_|_||_||__|_|");
            strTmp = strTmp.Replace("g", "_|_|_|__||_||");
            strTmp = strTmp.Replace("h", "_||_|_|__||_|");
            strTmp = strTmp.Replace("i", "_|_||_|__||_|");
            strTmp = strTmp.Replace("j", "_|_|_||__||_|");
            strTmp = strTmp.Replace("k", "_||_|_|_|__||");
            strTmp = strTmp.Replace("l", "_|_||_|_|__||");
            strTmp = strTmp.Replace("m", "_||_||_|_|__|");
            strTmp = strTmp.Replace("n", "_|_|_||_|__||");
            strTmp = strTmp.Replace("o", "_||_|_||_|__|");
            strTmp = strTmp.Replace("p", "_|_||_||_|__|");
            strTmp = strTmp.Replace("r", "_||_|_|_||__|");
            strTmp = strTmp.Replace("q", "_|_|_|_||__||");
            strTmp = strTmp.Replace("s", "_|_||_|_||__|");
            strTmp = strTmp.Replace("t", "_|_|_||_||__|");
            strTmp = strTmp.Replace("u", "_||__|_|_|_||");
            strTmp = strTmp.Replace("v", "_|__||_|_|_||");
            strTmp = strTmp.Replace("w", "_||__||_|_|_|");
            strTmp = strTmp.Replace("x", "_|__|_||_|_||");
            strTmp = strTmp.Replace("y", "_||__|_||_|_|");
            strTmp = strTmp.Replace("z", "_|__||_||_|_|");
            strTmp = strTmp.Replace("-", "_|__|_|_||_||");
            strTmp = strTmp.Replace("*", "_|__|_||_||_|");
            strTmp = strTmp.Replace("/", "_|__|__|_|__|");
            strTmp = strTmp.Replace("%", "_|_|__|__|__|");
            strTmp = strTmp.Replace("+", "_|__|_|__|__|");
            strTmp = strTmp.Replace(".", "_||__|_|_||_|");
            strTmp = strTmp.Replace("_", "<span   style='height:" + height + ";" + width + ";background:#FFFFFF;'></span>");
            strTmp = strTmp.Replace("|", "<span   style='height:" + height + ";" + width + ";background:#000000;'></span>");
    
            if (type_code == 1)
            {
                return strTmp + "<BR>" + code;
            }
            else
            {
                return strTmp;
            }
            #endregion
        }
           
        public static string ClearHtml(string HtmlString)
        {
            string pn = "(</?.*?/?>)";
            HtmlString = Regex.Replace(HtmlString, pn, "");
            return HtmlString;
        }
    
        public static string ClearFormat(string HtmlString)
        {
            HtmlString = HtmlString.Replace("
    ", string.Empty).Replace(" ", string.Empty);
            return HtmlString.Trim();
        }
    
        #region 获取N行数据
        /// <summary>
        /// 取指定行数数据
        /// </summary>
        /// <param name="str">传入的待取字符串</param>
        /// <param name="rowsnum">指定的行数</param>
        /// <param name="strnum">每行的英文字符数或字节数</param>
        /// <returns></returns>
        public static string GetContent(string str, int rowsnum, int strnum)
        {
            //1计算内容块           
            string content = str.Replace("
    ", "§");
            string[] strContent = content.Split(Convert.ToChar("§"));
    
            int strCount = rowsnum * strnum;
            int cutrow = rowsnum - strContent.Length;
            cutrow = rowsnum > 10 ? rowsnum : 10;
            int pStrCount;
            string setOkStr = "";
    
    
            //2对内容块进行
            for (int i = 0; i < strContent.Length; i++)
            {
                pStrCount = System.Text.Encoding.Default.GetBytes(strContent[i]).Length;
                if (pStrCount < strCount)
                {
                    setOkStr += strContent[i] + "<br>";
                    rowsnum -= Convert.ToInt32(Math.Ceiling((double)pStrCount / (double)strnum));
                    strCount = rowsnum * strnum;
                }
                else
                {
                    if (rowsnum > 0)
                    {
                        setOkStr += CutStr(strContent[i], rowsnum * strnum, cutrow);
                    }
                    else
                    {
                        //减去rowsnum是为了避免有些行长度为90,有的为89的现像
                        setOkStr = setOkStr.Substring(0, setOkStr.Length - cutrow / 2) + "...";
                    }
                    break;
                }
            }
    
            setOkStr = setOkStr.Replace("  ", " "); //软(半角)空格转硬(全角)空格
            return setOkStr;
    
        }
    
        //字符串截取函数
        public static string CutStr(string str, int length, int rowsnum)
        {
            if (System.Text.Encoding.Default.GetBytes(str).Length < length)
                return str;
    
            length = length - rowsnum;
            int i = 0, j = 0;
            foreach (char chr in str)
            {
                if ((int)chr > 127)
                    i += 2;
                else
                    i++;
                if (i > length)
                {
                    str = str.Substring(0, j) + "...";
                    break;
                }
                j++;
            }
            return str;
    
        }
        #endregion
    
        #region 得到整型
        public static int ConvertToInt(string Str)
        {
            return Str.Trim() == string.Empty ? 0 : int.Parse(Str);
        }
    
        public static int GetInt(object o)
        {
            #region
            if (o == DBNull.Value || o == null)
                return 0;
            else
                return Convert.ToInt32(o);
            #endregion
        } 
        #endregion
    
        /// <summary>
        /// 转化成时间类型
        /// </summary>
        /// <param name="o"></param>
        /// <returns></returns>
        public static object ConvertDate(object o)
        {
            DateTime dt;
            if(DateTime.TryParse(o.ToString(),out dt))
                return dt;
            else
                return DBNull.Value;
        }
    
        #region 闭合HTML代码
        public static string CloseHTML(string str)
        {
            string[] HtmlTag = new string[] { "p", "div", "span", "table", "ul", "font", "b", "u", "i", "a", "h1", "h2", "h3", "h4", "h5", "h6" };
    
            for (int i = 0; i < HtmlTag.Length; i++)
            {
                int OpenNum = 0, CloseNum = 0;
                Regex re = new Regex("<" + HtmlTag + "[^>]*" + ">", RegexOptions.IgnoreCase);
                MatchCollection m = re.Matches(str);
                OpenNum = m.Count;
                re = new Regex("</" + HtmlTag + ">", RegexOptions.IgnoreCase);
                m = re.Matches(str);
                CloseNum = m.Count;
    
                for (int j = 0; j < OpenNum - CloseNum; j++)
                {
                    str += "</" + HtmlTag + ">";
                }
            }
    
            return str;
        } 
        #endregion
    
        /// <summary>
        /// 得到192.248.23.*的IP
        /// </summary>
        /// <param name="Str">IP地址</param>
        /// <returns></returns>
        public static string GetSortIp(string Str)
        {
            int x = Str.LastIndexOf('.')-1;
            return Str.Substring(0, x) + "*.*";
        }
    
        /// <summary>
        /// 获取年月
        /// </summary>
        /// <returns></returns>
        public static string GetYearMonth()
        {
            return DateTime.Now.ToString("yyyyMM") ;
        }
    
        #region 获取远程页面内容
        public static string GetHttpData(string Url)
        {
            //string sException = null;
            string sRslt = null;
            WebResponse oWebRps = null;
            WebRequest oWebRqst = WebRequest.Create(Url);
            oWebRqst.Timeout = 50000;
            try
            {
                oWebRps = oWebRqst.GetResponse();
            }
            catch (WebException e)
            {
                //sException = e.Message.ToString();
                //Response.Write(sException);
            }
            catch (Exception e)
            {
                //sException = e.ToString();
                //Response.Write(sException);
            }
            finally
            {
                if (oWebRps != null)
                {
                    var oStreamRd = new StreamReader(oWebRps.GetResponseStream(), Encoding.GetEncoding("UTF-8"));//GB2312|UTF-8"
                    sRslt = oStreamRd.ReadToEnd();
                    oStreamRd.Close();
                    oWebRps.Close();
                }
            }
            return sRslt;
        }
    
        public string[] GetData(string Html)
        {
            String[] rS = new String[2];
            string s = Html;
            s = Regex.Replace(s, "\s{3,}", "");
            s = s.Replace("
    ", "");
            s = s.Replace("
    ", "");
            string Pat = "<td align="center" class="24p"><B>(.*)</B></td></tr><tr>.*(<table width="95%" border="0" cellspacing="0" cellpadding="10">.*</table>)<table width="98%" border="0" cellspacing="0" cellpadding="0">(.*)<td align=center class=l6h>";
            Regex Re = new Regex(Pat);
            Match Ma = Re.Match(s);
            if (Ma.Success)
            {
                rS[0] = Ma.Groups[1].ToString();
                rS[1] = Ma.Groups[2].ToString();
                //pgStr = Ma.Groups[3].ToString();
            }
            return rS;
        } 
        #endregion
    
        /// <summary>
        /// 判断页面是否存在
        /// </summary>
        /// <param name="sURL"></param>
        /// <returns></returns>
        public static bool UrlExist(string sURL)
        {
            #region 
            try
            {
                HttpWebRequest request = (HttpWebRequest)WebRequest.Create(sURL);
                //WebProxy   proxy   =   new   WebProxy("your   proxy   server",   8080);   
                //request.Proxy   =   proxy;   
                request.Method = "HEAD";
                request.AllowAutoRedirect = false;
                HttpWebResponse response = (HttpWebResponse)request.GetResponse();
                bool result = false;
                switch (response.StatusCode)
                {
                    case HttpStatusCode.OK:
                        result = true;
                        break;
                    case HttpStatusCode.Moved:
                        break;
                    case HttpStatusCode.NotFound:
                        break;
                }
                response.Close();
                return result;
            }
            catch
            {
                return false;
            } 
            #endregion
        }
    
        #region 获取字串中的链接
        /// <summary>
        /// 获取字串中的链接
        /// </summary>
        /// <param name="HtmlCode"></param>
        /// <returns></returns>
        public static ArrayList GetPageUrl(string HtmlCode)
        {
            ArrayList my_list = new ArrayList();
            string p = @"http://([w-]+.)+[w-]+(/[w- ./?%&=]*)?";
            Regex re = new Regex(p, RegexOptions.IgnoreCase);
            MatchCollection mc = re.Matches(HtmlCode);
    
            for (int i = 0; i <= mc.Count - 1; i++)
            {
                string name = mc[i].ToString();
                if (!my_list.Contains(name))//排除重复URL
                {
                    my_list.Add(name);
                }
            }
            return my_list;
        } 
        #endregion
    
    
        /// <summary>
        /// 将 Stream 转化成 string
        /// </summary>
        /// <param name="s"></param>
        /// <returns></returns>
        public static string ConvertStreamToString(Stream s)
        {
            #region 
            string strResult = "";
            StreamReader sr = new StreamReader(s, Encoding.UTF8);
    
            Char[] read = new Char[256];
    
            // Read 256 charcters at a time.    
            int count = sr.Read(read, 0, 256);
    
            while (count > 0)
            {
                // Dump the 256 characters on a string and display the string onto the console.
                string str = new String(read, 0, count);
                strResult += str;
                count = sr.Read(read, 0, 256);
            }
    
    
            // 释放资源
            sr.Close();
    
            return strResult; 
            #endregion
        }
    
        /// <summary>
        /// 对传递的参数字符串进行处理,防止注入式攻击
        /// </summary>
        /// <param name="str">传递的参数字符串</param>
        /// <returns>String</returns>
        public static string ConvertSql(string str)
        {
            #region 
            str = str.Trim();
            str = str.Replace("'", "''");
            str = str.Replace(";--", "");
            str = str.Replace("=", "");
            str = str.Replace(" or ", "");
            str = str.Replace(" and ", "");
    
            return str; 
            #endregion
        }
    
        /// <summary>
        /// 格式化占用空间大小的输出
        /// </summary>
        /// <param name="size">大小</param>
        /// <returns>返回 String</returns>
        public static string FormatNUM(long size)
        {
            #region 
            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; 
            #endregion
        }
    
        /// <summary>
        /// 获取数组元素的合并字符串
        /// </summary>
        /// <param name="stringArray"></param>
        /// <returns></returns>
        public static string GetArrayString(string[] stringArray)
        {
            #region 
            string totalString = null;
            for (int i = 0; i < stringArray.Length; i++)
            {
                totalString = totalString + stringArray[i];
            }
            return totalString; 
            #endregion
        }
    
        /// <summary>
        /// 将指定字符串中的汉字转换为拼音首字母的缩写,其中非汉字保留为原字符
        /// </summary>
        /// <param name="text"></param>
        /// <returns></returns>
        public static string ConvertSpellFirst(string text)
        {
            #region
    
            var sb = new StringBuilder(text.Length);
            foreach (char c in text)
            {
                var pinyin = c;
                byte[] array = Encoding.Default.GetBytes(new[] { c });
    
                if (array.Length == 2)
                {
                    var i = array[0] * 0x100 + array[1];
    
                    #region 条件匹配
                    if (i < 0xB0A1) pinyin = c;
                    else
                        if (i < 0xB0C5) pinyin = 'a';
                        else
                            if (i < 0xB2C1) pinyin = 'b';
                            else
                                if (i < 0xB4EE) pinyin = 'c';
                                else
                                    if (i < 0xB6EA) pinyin = 'd';
                                    else
                                        if (i < 0xB7A2) pinyin = 'e';
                                        else
                                            if (i < 0xB8C1) pinyin = 'f';
                                            else
                                                if (i < 0xB9FE) pinyin = 'g';
                                                else
                                                    if (i < 0xBBF7) pinyin = 'h';
                                                    else
                                                        if (i < 0xBFA6) pinyin = 'g';
                                                        else
                                                            if (i < 0xC0AC) pinyin = 'k';
                                                            else
                                                                if (i < 0xC2E8) pinyin = 'l';
                                                                else
                                                                    if (i < 0xC4C3) pinyin = 'm';
                                                                    else
                                                                        if (i < 0xC5B6) pinyin = 'n';
                                                                        else
                                                                            if (i < 0xC5BE) pinyin = 'o';
                                                                            else
                                                                                if (i < 0xC6DA) pinyin = 'p';
                                                                                else
                                                                                    if (i < 0xC8BB) pinyin = 'q';
                                                                                    else
                                                                                        if (i < 0xC8F6) pinyin = 'r';
                                                                                        else
                                                                                            if (i < 0xCBFA) pinyin = 's';
                                                                                            else
                                                                                                if (i < 0xCDDA) pinyin = 't';
                                                                                                else
                                                                                                    if (i < 0xCEF4) pinyin = 'w';
                                                                                                    else
                                                                                                        if (i < 0xD1B9) pinyin = 'x';
                                                                                                        else
                                                                                                            if (i < 0xD4D1) pinyin = 'y';
                                                                                                            else
                                                                                                                if (i < 0xD7FA) pinyin = 'z';
                    #endregion
                }
    
                sb.Append(pinyin);
            }           
    
            return sb.ToString();
            #endregion
        }
    
        #region Request
        /// <summary></summary>
        /// <param name="filedName"></param>
        /// <param name="defaultValue"></param>
        /// <returns></returns>
        public static int Request(string filedName, int defaultValue)
        {
            return Request(filedName, defaultValue, false);
        }
    
        /// <summary>
        /// 获取URL指定参数,如果参数不存在或者为空就返回默认值
        /// </summary>
        /// <param name="filedName">请求KEY</param>
        /// <param name="defaultValue">默认值</param>
        /// <param name="isDecrypt">是否需要解密</param>
        /// <returns></returns>
        public static int Request(string filedName, int defaultValue, bool isDecrypt)
        {
            string str = HttpContext.Current.Request[filedName];
            if (str != null && str.Trim() != "")
            {
                if (isDecrypt)
                {
                    str = new  PblogDes().Decrypt(str);
                }
                return int.Parse(str);
            }
    
            return defaultValue;
        }
    
        /// <summary>
        /// 获取URL指定参数,如果参数不存在或者为空就抛出错误信息
        /// </summary>
        /// <param name="filedName"></param>
        /// <returns></returns>
        public static int Request(string filedName)
        {
            return Request(filedName, false);
        }
    
        /// <summary>
        /// 获取URL指定参数,如果参数不存在或者为空就抛出错误信息
        /// </summary>
        /// <param name="filedName"></param>
        /// <param name="isDecrypt">是否需要解密</param>
        /// <returns></returns>
        public static int Request(string filedName, bool isDecrypt)
        {
            int i = Request(filedName, -1, isDecrypt);
            if (i == -1)
            {
                throw new Exception("找不到指定参数:" + filedName);
            }
    
            return i;
        }
        #endregion
    }
    
  • 相关阅读:
    java实现httpclient 访问
    推荐博文
    Running With xpi
    1 Spring MVC 原理
    windows服务相关
    求职面试三部曲
    使用mvn插件执行工程单元测试OOM的解决办法
    maven-surefire插件问题
    小问题
    NFA到DFA实例
  • 原文地址:https://www.cnblogs.com/luchuanbo/p/4349746.html
Copyright © 2011-2022 走看看