pre { /*控制代码不换行*/ white-space: pre; word-wrap: normal; }

有用的String的扩展

  1. 将字符串数组用一个符号连接起来
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    public static class StringExtendsions
    {
        /// <summary>
        /// 将字符串数组用一个符号连接起来
        /// </summary>
        /// <param name="items">数组</param>
        /// <param name="joinFlag">符合,比如中文的逗号“,”</param>
        /// <returns></returns>
        public static string ToJoinString(this string[] items, string joinFlag)
        {
            if (items == null || items.Length == 0)
            {
                return string.Empty;
            }
            System.Text.StringBuilder result = new System.Text.StringBuilder();
            int i = 1;
            int itemLength = items.Length;
            foreach (string item in items)
            {
                result.Append(item);
                if (!string.IsNullOrEmpty(joinFlag) && i < itemLength)
                {
                    result.Append(joinFlag);
                }
                i++;
            }
            return result.ToString();
        }
    }
  2. 移除HTML代码
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    public static class StringExtensions
    {
        /// <summary>
        /// 移除HTML代码
        /// </summary>
        /// <param name="Htmlstring">要移除的字符串</param>
        /// <returns></returns>
        public static string RemoveHTML(this string Htmlstring)
        {
            //删除脚本
            Htmlstring = Regex.Replace(Htmlstring, @"([\r\n])[\s]+", "", RegexOptions.IgnoreCase);
            Htmlstring = Regex.Replace(Htmlstring, @"<script[^>]*?>.*?</script>", "", RegexOptions.IgnoreCase);
            //删除HTML
            Htmlstring = Regex.Replace(Htmlstring, @"<(.[^>]*)>", "", RegexOptions.IgnoreCase);
            Htmlstring = Regex.Replace(Htmlstring, @"([\r\n])[\s]+", "", RegexOptions.IgnoreCase);
            Htmlstring = Regex.Replace(Htmlstring, @"-->", "", RegexOptions.IgnoreCase);
            Htmlstring = Regex.Replace(Htmlstring, @"<!--.*", "", RegexOptions.IgnoreCase);
            //Htmlstring = Regex.Replace(Htmlstring,@"<A>.*</A>","");
            //Htmlstring = Regex.Replace(Htmlstring,@"<[a-zA-Z]*=\.[a-zA-Z]*\?[a-zA-Z]+=\d&\w=%[a-zA-Z]*|[A-Z0-9]","");
            Htmlstring = Regex.Replace(Htmlstring, @"&(quot|#34);", "\"", RegexOptions.IgnoreCase);
            Htmlstring = Regex.Replace(Htmlstring, @"&(amp|#38);", "&", RegexOptions.IgnoreCase);
            Htmlstring = Regex.Replace(Htmlstring, @"&(lt|#60);", "<", RegexOptions.IgnoreCase);
            Htmlstring = Regex.Replace(Htmlstring, @"&(gt|#62);", ">", RegexOptions.IgnoreCase);
            Htmlstring = Regex.Replace(Htmlstring, @"&(nbsp|#160);", " ", RegexOptions.IgnoreCase);
            Htmlstring = Regex.Replace(Htmlstring, @"&(iexcl|#161);", "\xa1", RegexOptions.IgnoreCase);
            Htmlstring = Regex.Replace(Htmlstring, @"&(cent|#162);", "\xa2", RegexOptions.IgnoreCase);
            Htmlstring = Regex.Replace(Htmlstring, @"&(pound|#163);", "\xa3", RegexOptions.IgnoreCase);
            Htmlstring = Regex.Replace(Htmlstring, @"&(copy|#169);", "\xa9", RegexOptions.IgnoreCase);
            Htmlstring = Regex.Replace(Htmlstring, @"&#(\d+);", "", RegexOptions.IgnoreCase);
            Htmlstring.Replace("<", "");
            Htmlstring.Replace(">", "");
            Htmlstring.Replace("\r\n", "");
            //Htmlstring=HttpContext.Current.Server.HtmlEncode(Htmlstring).Trim();
            return Htmlstring;
        }
    }
  3. 截取并省略字符串
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    /// <summary>
    /// 截取并省略字符串
    /// </summary>
    /// <param name="str"></param>
    /// <param name="length">需要截取的字符长度</param>
    /// <returns></returns>
    public static string SubstringEllipsis(this string str, int length)
    {
        if (str == null)
        {
            return null;
        }
        string result = GetSubString(str.ToString(), length);
        if (str.ToString().Length > result.Length)
        {
            result += "...";
        }
        return result;
    }
     
    /// <summary>
    /// 获取指定字符串从 0 开始指定长度的字符。单个字符若是双字节长度算 1 若为单字节长度算 0.5。
    /// </summary>
    /// <param name="input">需要获取的字符串</param>
    /// <param name="count">需要获取的长度</param>
    /// <returns></returns>
    private static string GetSubString(string input, int count)
    {
        int outputCount = 0;
        bool appendCount = false; // 是否递增长度
        string output = "";
     
        foreach (Char c in input.ToCharArray())
        {
            if (outputCount >= count)
            {
                break;
            }
            if (Regex.IsMatch(c.ToString(), @"[^\x00-\xff]"))
            {
                outputCount++; // 双字节算长度 1
            }
            else
            {
                // 单字节算长度 0.5
                if (!appendCount)
                {
                    appendCount = true;
                }
                else
                {
                    appendCount = false;
                    outputCount++;
                }
            }
            output += c.ToString();
        }
        return output;
    }
posted @ 2012-03-15 00:59  monkey's  阅读(114)  评论(0)    收藏  举报