原贴这里  http://topic.csdn.net/u/20080716/09/e0d021a2-9069-43ac-adcf-badcc1a82769.html 
这里的分可以给你.
这里是加分.回答问题请在那边和这边留名.谢谢.因为原贴还没来得及改分就给按错了.
嘿嘿

解决方案 »

  1.   

    http://blog.csdn.net/nopole/archive/2008/03/19/2197285.aspx楼主参考一下   这是我前段时间搞的    里面有你需要的东西 
      

  2.   

    FCKeditorV2 这个应该够楼主用
      

  3.   


    /*
      * 按字节长度截取字符串(支持截取带HTML代码样式的字符串)
      * @param param 将要截取的字符串参数
      * @param length 截取的字节长度
      * @param end 字符串末尾补上的字符串
      * @return 返回截取后的字符串
      */
      public static string subStringHTML(string param,int length,string end)
      {
       string Pattern = null;
       MatchCollection m = null;
       StringBuilder result = new StringBuilder();
       int n = 0;
       char temp;
       bool isCode = false; //是不是HTML代码
       bool isHTML = false; //是不是HTML特殊字符,如 
       char[] pchar = param.ToCharArray();
       for (int i = 0; i < pchar.Length; i++)
       {
        temp = pchar[i];
        if (temp == '<')
        {
         isCode = true;
        }
        else if (temp == '&')
        {
         isHTML = true;
        }
        else if (temp == '>' && isCode)
        {
         n = n - 1;
         isCode = false;
        }
        else if (temp == ';' && isHTML)
        {
         isHTML = false;
        }
        if (!isCode && !isHTML)
        {
         n = n + 1;
         //UNICODE码字符占两个字节
         if (System.Text.Encoding.Default.GetBytes(temp + "").Length > 1)
         {
          n = n + 1;
         }
        }
        result.Append(temp);
        if (n >= length)
        {
         break;
        }
       }
       result.Append(end);
       //取出截取字符串中的HTML标记
       string temp_result = result.ToString().Replace("(>)[^<>]*(<?)","$1$2");
       //去掉不需要结素标记的HTML标记
       temp_result = temp_result.Replace(@"</?(AREA|BASE|BASEFONT|BODY|BR|COL|COLGROUP|DD|DT|FRAME|HEAD|HR|HTML|IMG|INPUT|ISINDEX|LI|LINK|META|OPTION|P|PARAM|TBODY|TD|TFOOT|TH|THEAD|TR|area|base|basefont|body|br|col|colgroup|dd|dt|frame|head|hr|html|img|input|isindex|li|link|meta|option|p|param|tbody|td|tfoot|th|thead|tr)[^<>]*/?>",
        "");
       //去掉成对的HTML标记
       temp_result=temp_result.Replace(@"<([a-zA-Z]+)[^<>]*>(.*?)</\1>","$2");
       //用正则表达式取出标记
       Pattern = ("<([a-zA-Z]+)[^<>]*>");
       m = Regex.Matches(temp_result,Pattern);
       ArrayList endHTML = new ArrayList();
       foreach(Match mt in m)
       {
        endHTML.Add(mt.Result("$1"));
       }
       //补全不成对的HTML标记
       for (int i = endHTML.Count - 1; i >= 0; i--)
       {
        result.Append("</");
        result.Append(endHTML[i]);
        result.Append(">");
       }
       return result.ToString();
      }
    //望此方法对楼主有用
      

  4.   

    leon28  不中啊 我试了,所有的标记都给加到后边了.