字符串 html之间的转换
1 /**/ 2 /// <summary> 3 ///将字符串格式化为HTML 4 /// </summary> 5 /// <param name="normalStr">所要格式化的字符串</param> 6 /// <param name="identiftyURL">是否自动识别URL,识别出来的URL将会自动加上超级链接标签</param> 7 /// <returns>返回格式化后的HTML代码</returns> 8 public static string FormatToHTML(string normalStr, bool identiftyURL) 9 { 10 StringBuilder html = new StringBuilder(normalStr); 11 12 html.Append(' '); 13 html.Replace("&", "&"); 14 html.Replace(" ", " "); 15 html.Replace("<", "<"); 16 html.Replace(">", ">"); 17 html.Replace(""", "\""); 18 19 if (identiftyURL) 20 { 21 Regex linkRegex = new Regex("(http://|www)[\\S]{5,}(?= |\r\n)"); 22 23 MatchCollection regMathes = linkRegex.Matches(html.ToString()); 24 25 int add = 0; 26 27 foreach (Match match in regMathes) 28 { 29 string head = string.Format("<a href=\"{0}\">", match.Value[0] == 'h' ? match.Value : "http://" + match.Value); 30 31 html.Insert(match.Index + add, head); 32 add += head.Length; 33 34 html.Insert(match.Index + match.Length + add, "</a>"); 35 add += 3; 36 } 37 } 38 39 html.Replace("\r\n", "<br />"); 40 41 return html.ToString(); 42 } 43 44 45 46 #region 过滤掉 html代码 47 private static string StripHTML(string strHtml) 48 { 49 #region 50 string[] aryReg ={ 51 @"<script[^>]*?>.*?</script>", 52 @"<(\/\s*)?!?((\w+:)?\w+)(\w+(\s*=?\s*(([""'])(\\[""'tbnr]|[^\7])*?\7|\w+)|.{0})|\s)*?(\/\s*)?>", 53 @"([\r\n])[\s]+", 54 @"&(quot|#34);", 55 @"&(amp|#38);", 56 @"&(lt|#60);", 57 @"&(gt|#62);", 58 @"&(nbsp|#160);", 59 @"&(iexcl|#161);", 60 @"&(cent|#162);", 61 @"&(pound|#163);", 62 @"&(copy|#169);", 63 @"&#(\d+);", 64 @"-->", 65 @"<!--.*\n" 66 }; 67 68 string[] aryRep = { 69 "", 70 "", 71 "", 72 "\"", 73 "&", 74 "<", 75 ">", 76 " ", 77 "\xa1",//chr(161), 78 "\xa2",//chr(162), 79 "\xa3",//chr(163), 80 "\xa9",//chr(169), 81 "", 82 "\r\n", 83 "" 84 }; 85 #endregion 86 string newReg = aryReg[0]; 87 string strOutput = strHtml; 88 for (int i = 0; i < aryReg.Length; i++) 89 { 90 System.Text.RegularExpressions.Regex regex = new System.Text.RegularExpressions.Regex(aryReg[i], System.Text.RegularExpressions.RegexOptions.IgnoreCase); 91 strOutput = regex.Replace(strOutput, aryRep[i]); 92 } 93 strOutput.Replace("<", ""); 94 strOutput.Replace(">", ""); 95 strOutput.Replace("\r\n", ""); 96 return strOutput; 97 } 98 #endregion