自己從網上找了一個過濾HTML標簽的方法,我也不知道誰的才是原創的,反正很多都一樣。我把那方法復制下來,代碼如下:
/// <summary>/// 去除HTML標記/// </summary>/// <param name="NoHTML">包括HTML的源碼 </param>/// <returns>已經去除后的文字</returns>public static string NoHTML(string Htmlstring){ //刪除腳本 Htmlstring = Regex.Replace(Htmlstring, @"<scr以上代碼是從網上直接復制過來的,這個確實能過濾掉所有的HTML標簽,但是這個不是我想要的,這個過濾得太干凈了,我如果用textarea輸入框的話,我是要保留空格跟換行的。
然后我就自己改了一下這個方法,textarea的換行是/n,所以我得把這些標簽重新匹配替換成<br>,這樣的話從數據庫中讀取到頁面時,就能正確的換行了,把空格替換成HTML的空格符,大功告成。
/// <summary> /// 去除HTML標記(保留br跟/r/n)(此方法由博客園-三卷天書修改成) /// </summary> /// <param name="NoHTML">包括HTML的源碼 </param> /// <returns>已經去除后的文字</returns> public static string NewNoHTML(string Htmlstring) { //Htmlstring.Replace("http://r//n", "%r%n").Replace("<br>","%br%").Replace("<br/>","%br&%").Replace("http://n","%n"); //刪除腳本 Htmlstring = Regex.Replace(Htmlstring, @"<script[^>]*?>.*?</script>", "", RegexOptions.IgnoreCase); //刪除HTML Htmlstring = Regex.Replace(Htmlstring, @"<(.[^>]*)>", "", RegexOptions.IgnoreCase); Htmlstring = Regex.Replace(Htmlstring, @"-->", "", RegexOptions.IgnoreCase); Htmlstring = Regex.Replace(Htmlstring, @"<!--.*", "", RegexOptions.IgnoreCase); 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); Htmlstring = Regex.Replace(Htmlstring, @"((/r/n))", "<br>"); Htmlstring = Regex.Replace(Htmlstring, @"(/r|/n)", "<br>"); Htmlstring = Regex.Replace(Htmlstring, @"(/s)", " "); return Htmlstring; }這個過濾可以用于讓用戶輸入發布內容時的過濾,如有不足之處,請大家批評指正!
新聞熱點
疑難解答