導航:首頁 > 凈水問答 > asp用正則過濾html標簽

asp用正則過濾html標簽

發布時間:2022-10-08 15:08:33

A. 如何用正則表達式去掉html標簽

protected string str = "<table><tr><td>sdasasdsdd</td></tr></table><br><p>sds</p><img id='img1' src='http://www..com/img/_logo.gif' width='100' height='50' alt=''>aaassss<br><img src='http://www..com/img/_logo.gif' width='100' height='50' alt=''> 說是道 ";
protected void Page_Load(object sender, EventArgs e)
{
//string regexstr = @"<[^>]*>"; //去除所有的標簽
//@"<script[^>]*?>.*?</script >" //去除所有腳本,中間部分也刪除

// string regexstr = @"<img[^>]*>"; //去除圖片的正則
// string regexstr = @"<(?!br).*?>"; //去除所有標簽,只剩br
// string regexstr = @"<table[^>]*?>.*?</table>"; //去除table裡面的所有內容
string regexstr = @"<(?!img|br|p|/p).*?>"; //去除所有標簽,只剩img,br,p

str = Regex.Replace(str, regexstr, string.Empty, RegexOptions.IgnoreCase);
}

B. 如何用正則表達式去掉html標簽

1、正則表達式去掉html標簽代碼如下:
/// <Header> /// 去除 HTML tag
/// </Header>
/// <param name="HTML">源</param>
/// <returns>結果</returns> public static string StripHTML(string HTML) //google "StripHTML" 得到{ string[] Regexs =
{
@"<script[^>]*?>.*?</script>",
@"<(\/\s*)?!?((\w+:)?\w+)(\w+(\s*=?\s*(([""'])(\\[""'tbnr]|[^\7])*?\7|\w+)|.{0})|\s)*?(\/\s*)?>",
@"([\r\n])[\s]+",
@"&(quot|#34);",
@"&(amp|#38);",
@"&(lt|#60);",
@"&(gt|#62);",
@"&(nbsp|#160);",
@"&(iexcl|#161);",
@"&(cent|#162);",
@"&(pound|#163);",
@"&(|#169);",
@"&#(\d+);",
@"-->",
@"<!--.*\n"
};

string[] Replaces =
{
"",
"",
"",
"\"",
"&",
"<",
">",
" ",
"\xa1", //chr(161), "\xa2", //chr(162), "\xa3", //chr(163), "\xa9", //chr(169), "",
"\r\n",
""
};

string s = HTML;
for (int i = 0; i < Regexs.Length; i++)
{
s = new Regex(Regexs[i], RegexOptions.Multiline | RegexOptions.IgnoreCase).Replace(s, Replaces[i]);
}
s.Replace("<", "");
s.Replace(">", "");
s.Replace("\r\n", "");
return s;
}
}
2、可以直接復制到txt,然後保存成為.html,在瀏覽器中設置即可!

C. 如何用正則表達式去掉html標簽

使用正則表達式去掉html標簽的方法常用的正則表達式是:/<[^<]+?>/g
1、定義含有html標簽的字元內串:
$text
=
'<p>Test
paragraph.</p><!--
Comment
-->
<a
href="#fragment">Other
text</a>';
2、定義正則容表達式並替換
$val
=
preg_replace('/<[^<]+?>/g',
'
',
$row_get_Business['business_description']);
3、截取指定長度
$businessDesc
=
substr(val,0,110);

D. 求ASP+正則表達式代碼 過濾HTML中href標簽和圖片的代碼

/<a [^>]*>[^<\s]*</a>|<img [^>]*>/i

E. 用正則表達式過濾HTML標簽

import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
* <p>
* Title: HTML相關的正則表達式工具類
* </p>
* <p>
* Description: 包括過濾HTML標記,轉換HTML標記,替換特定HTML標記
* </p>
* <p>
* Copyright: Copyright (c) 2006
* </p>
*
* @ hejian
* @version 1.0
* @createtime 2006-10-16
*/

public class HtmlRegexpUtil {
private final static String regxpForHtml = "<([^>]*)>"; // 過濾所有以<開頭以>結尾的標簽

private final static String regxpForImgTag = "<\\s*img\\s+([^>]*)\\s*>"; // 找出IMG標簽

private final static String regxpForImaTagSrcAttrib = "src=\"([^\"]+)\""; // 找出IMG標簽的SRC屬性

/**
*
*/
public HtmlRegexpUtil() {
// TODO Auto-generated constructor stub
}

/**
*
* 基本功能:替換標記以正常顯示
* <p>
*
* @param input
* @return String
*/
public String replaceTag(String input) {
if (!hasSpecialChars(input)) {
return input;
}
StringBuffer filtered = new StringBuffer(input.length());
char c;
for (int i = 0; i <= input.length() - 1; i++) {
c = input.charAt(i);
switch (c) {
case '<':
filtered.append("<");
break;
case '>':
filtered.append(">");
break;
case '"':
filtered.append(""");
break;
case '&':
filtered.append("&");
break;
default:
filtered.append(c);
}

}
return (filtered.toString());
}

/**
*
* 基本功能:判斷標記是否存在
* <p>
*
* @param input
* @return boolean
*/
public boolean hasSpecialChars(String input) {
boolean flag = false;
if ((input != null) && (input.length() > 0)) {
char c;
for (int i = 0; i <= input.length() - 1; i++) {
c = input.charAt(i);
switch (c) {
case '>':
flag = true;
break;
case '<':
flag = true;
break;
case '"':
flag = true;
break;
case '&':
flag = true;
break;
}
}
}
return flag;
}

/**
*
* 基本功能:過濾所有以"<"開頭以">"結尾的標簽
* <p>
*
* @param str
* @return String
*/
public static String filterHtml(String str) {
Pattern pattern = Pattern.compile(regxpForHtml);
Matcher matcher = pattern.matcher(str);
StringBuffer sb = new StringBuffer();
boolean result1 = matcher.find();
while (result1) {
matcher.appendReplacement(sb, "");
result1 = matcher.find();
}
matcher.appendTail(sb);
return sb.toString();
}

/**
*
* 基本功能:過濾指定標簽
* <p>
*
* @param str
* @param tag
* 指定標簽
* @return String
*/
public static String fiterHtmlTag(String str, String tag) {
String regxp = "<\\s*" + tag + "\\s+([^>]*)\\s*>";
Pattern pattern = Pattern.compile(regxp);
Matcher matcher = pattern.matcher(str);
StringBuffer sb = new StringBuffer();
boolean result1 = matcher.find();
while (result1) {
matcher.appendReplacement(sb, "");
result1 = matcher.find();
}
matcher.appendTail(sb);
return sb.toString();
}

/**
*
* 基本功能:替換指定的標簽
* <p>
*
* @param str
* @param beforeTag
* 要替換的標簽
* @param tagAttrib
* 要替換的標簽屬性值
* @param startTag
* 新標簽開始標記
* @param endTag
* 新標簽結束標記
* @return String
* @如:替換img標簽的src屬性值為[img]屬性值[/img]
*/
public static String replaceHtmlTag(String str, String beforeTag,
String tagAttrib, String startTag, String endTag) {
String regxpForTag = "<\\s*" + beforeTag + "\\s+([^>]*)\\s*>";
String regxpForTagAttrib = tagAttrib + "=\"([^\"]+)\"";
Pattern patternForTag = Pattern.compile(regxpForTag);
Pattern patternForAttrib = Pattern.compile(regxpForTagAttrib);
Matcher matcherForTag = patternForTag.matcher(str);
StringBuffer sb = new StringBuffer();
boolean result = matcherForTag.find();
while (result) {
StringBuffer sbreplace = new StringBuffer();
Matcher matcherForAttrib = patternForAttrib.matcher(matcherForTag
.group(1));
if (matcherForAttrib.find()) {
matcherForAttrib.appendReplacement(sbreplace, startTag
+ matcherForAttrib.group(1) + endTag);
}
matcherForTag.appendReplacement(sb, sbreplace.toString());
result = matcherForTag.find();
}
matcherForTag.appendTail(sb);
return sb.toString();
}
}

F. ASP去掉HTML代碼

ASP去掉HTML代碼:
方法一 : 禁用HTML
最簡單的方法是直接禁用html標簽而不用移除它們. 可以使用Replace()函數. 例如:
strText = Replace(strText, "<script", "<script", 1, -1, 1)
或者直接禁用所有的html:
strText = Replace(strText, "<", "<")
這樣做雖然很安全,但顯得不夠友好.(用戶提交的文本會變得難以閱讀)
方法二: 使用"<"和">"
怎樣使得html標簽從文本中消失呢? 我們可以去掉"<"和">"中間的所有內容
在JavaScript中這很簡單:
function RemoveHTML( strText )
{
var regEx = /<[^>]*>/g;
return strText.replace(regEx, "");
}
現在回到VBScript, 對於Scripting引擎5.0或更高版本(可以通過調用ScriptEngineMajorVersion和ScriptEngineMinorVersion函數來檢驗版本),我們也可以使用RegExp物體:
Function RemoveHTML( strText )
Dim RegEx
Set RegEx = New RegExp
RegEx.Pattern = "<[^>]*>"
RegEx.Global = True
RemoveHTML = RegEx.Replace(strText, "")
End Function
若不用正則表達式,下面的函數可以達到同樣的目的:
Function RemoveHTML( strText )
Dim nPos1
Dim nPos2
nPos1 = InStr(strText, "<")
Do While nPos1 > 0
nPos2 = InStr(nPos1 + 1, strText, ">")
If nPos2 > 0 Then
strText = Left(strText, nPos1 - 1) & Mid(strText, nPos2 + 1)
Else
Exit Do
End If
nPos1 = InStr(strText, "<")
Loop

RemoveHTML = strText
End Function
以上的方法雖然都可以去掉括弧內的html標簽,但是這些方法都存在以下問題:
首先,文本內的任何不表示html的尖括弧會被去除.而且兩個尖括弧中間的文本也會被刪掉.換句話說,在文本中插入任何"<"或">"都會出現不可預料的結果.
另外,這種方法不能控制刪除哪些html標簽.比如<b><i>這些無害的標簽通常是允許的.
方法三:使用IE或其他工具
有很多缺點:
"It may be desirable to parse HTML files inside a Web server process in response to a browser page request. However, the WebBrowser control, DHTML Editing Control, MSHTML, and other Internet Explorer components may not function properly in an Active Server Pages (ASP) page or other application run in a Web server application." (http://support.microsoft.com/support/kb/articles/Q244/0/85.ASP?LN=EN-US&SD=gn&FR=0)
方法四:VBScript
以下的函數可以限制到具體的html標簽
簡介:
要控制被刪除的標簽列表,可以通過向TAGLIST常數中添加/刪除標記來實現. 例如,要保留所有的<B>標簽,則從TAGLIST中刪除B. 當前的列表包含了MSDN中的所有html標簽以及 LAYER 標簽. 每個標簽要用";"括起來.
開始標簽和結束標簽都會被刪除,例如"<A...>"和</A...>
若標簽同時在 TAGLIST 和 BLOCKTAGLIST 常數中,則起始標簽和結束標簽之間的所有內容都會被刪除
沒有結束標記的標簽不被視為html標簽,其內容不會被刪除
塊標簽若沒有結尾標記,從此標簽開始到文本結束的所有內容會被刪除
若"<!--"後跟的字元不是空格,注釋標簽不會被刪除
使用這個函數很簡單:
strPlainText = RemoveHTML(strTextWithHTML)
函數內容如下:
Function RemoveHTML( strText )
Dim TAGLIST
TAGLIST = ";!--;!DOCTYPE;A;ACRONYM;ADDRESS;APPLET;AREA;B;BASE;BASEFONT;" &_
"BGSOUND;BIG;BLOCKQUOTE;BODY;BR;BUTTON;CAPTION;CENTER;CITE;CODE;" &_
"COL;COLGROUP;COMMENT;DD;DEL;DFN;DIR;DIV;DL;DT;EM;EMBED;FIELDSET;" &_
"FONT;FORM;FRAME;FRAMESET;HEAD;H1;H2;H3;H4;H5;H6;HR;HTML;I;IFRAME;IMG;" &_
"INPUT;INS;ISINDEX;KBD;LABEL;LAYER;LAGEND;LI;LINK;LISTING;MAP;MARQUEE;" &_
"MENU;META;NOBR;NOFRAMES;NOSCRIPT;OBJECT;OL;OPTION;P;PARAM;PLAINTEXT;" &_
"PRE;Q;S;SAMP;SCRIPT;SELECT;SMALL;SPAN;STRIKE;STRONG;STYLE;SUB;SUP;" &_
"TABLE;TBODY;TD;TEXTAREA;TFOOT;TH;THEAD;TITLE;TR;TT;U;UL;VAR;WBR;XMP;"
Const BLOCKTAGLIST = ";APPLET;EMBED;FRAMESET;HEAD;NOFRAMES;NOSCRIPT;OBJECT;SCRIPT;STYLE;"
Dim nPos1
Dim nPos2
Dim nPos3
Dim strResult
Dim strTagName
Dim bRemove
Dim bSearchForBlock
nPos1 = InStr(strText, "<")
Do While nPos1 > 0
nPos2 = InStr(nPos1 + 1, strText, ">")
If nPos2 > 0 Then
strTagName = Mid(strText, nPos1 + 1, nPos2 - nPos1 - 1)
strTagName = Replace(Replace(strTagName, vbCr, " "), vbLf, " ")
nPos3 = InStr(strTagName, " ")
If nPos3 > 0 Then
strTagName = Left(strTagName, nPos3 - 1)
End If
If Left(strTagName, 1) = "/" Then
strTagName = Mid(strTagName, 2)
bSearchForBlock = False
Else
bSearchForBlock = True
End If

If InStr(1, TAGLIST, ";" & strTagName & ";", vbTextCompare) > 0 Then
bRemove = True
If bSearchForBlock Then
If InStr(1, BLOCKTAGLIST, ";" & strTagName & ";", vbTextCompare) > 0 Then
nPos2 = Len(strText)
nPos3 = InStr(nPos1 + 1, strText, "</" & strTagName, vbTextCompare)
If nPos3 > 0 Then
nPos3 = InStr(nPos3 + 1, strText, ">")
End If

If nPos3 > 0 Then
nPos2 = nPos3
End If
End If
End If
Else
bRemove = False
End If

If bRemove Then
strResult = strResult & Left(strText, nPos1 - 1)
strText = Mid(strText, nPos2 + 1)
Else
strResult = strResult & Left(strText, nPos1)
strText = Mid(strText, nPos1 + 1)
End If
Else
strResult = strResult & strText
strText = ""
End If

nPos1 = InStr(strText, "<")
Loop
strResult = strResult & strText

RemoveHTML = strResult
End Function

G. ASP.NET過濾html標簽的幾種常用方法

沒有幾種.
原理就是刪掉正則匹配到的html標簽
至於刪除用repalce還是remove我覺得沒那麼重要了就..
html標簽的正則,網上抄的不知道對不對:
"<(.[^>]*)>"

H. 如何用正則表達式去掉html標簽

使用正則表達式去掉html標簽的方法常用的正則表達式是:/<[^<]+?>/g
1、定義含有html標簽的字元串回:答
$text = '<p>Test paragraph.</p><!-- Comment --> <a href="#fragment">Other text</a>';

2、定義正則表達式並替換
$val = preg_replace('/<[^<]+?>/g', ' ', $row_get_Business['business_description']);

3、截取指定長度
$businessDesc = substr(val,0,110);

I. asp怎樣去除文章中的html代碼

方法一 : 禁用HTML
最簡單的方法是直接禁用html標簽而不用移除它們. 可以使用Replace()函數. 例如:
strText = Replace(strText, "<script", "<script", 1, -1, 1)
或者直接禁用所有的html:
strText = Replace(strText, "<", "<")
這樣做雖然很安全,但顯得不夠友好.(用戶提交的文本會變得難以閱讀)
方法二: 使用"<"和">"
怎樣使得html標簽從文本中消失呢? 我們可以去掉"<"和">"中間的所有內容
在JavaScript中這很簡單:
function RemoveHTML( strText )
{
var regEx = /<[^>]*>/g;
return strText.replace(regEx, "");
}
現在回到VBScript, 對於Scripting引擎5.0或更高版本(可以通過調用ScriptEngineMajorVersion和ScriptEngineMinorVersion函數來檢驗版本),我們也可以使用RegExp物體:
Function RemoveHTML( strText )
Dim RegEx
Set RegEx = New RegExp
RegEx.Pattern = "<[^>]*>"
RegEx.Global = True
RemoveHTML = RegEx.Replace(strText, "")
End Function
若不用正則表達式,下面的函數可以達到同樣的目的:
Function RemoveHTML( strText )
Dim nPos1
Dim nPos2
nPos1 = InStr(strText, "<")
Do While nPos1 > 0
nPos2 = InStr(nPos1 + 1, strText, ">")
If nPos2 > 0 Then
strText = Left(strText, nPos1 - 1) & Mid(strText, nPos2 + 1)
Else
Exit Do
End If
nPos1 = InStr(strText, "<")
Loop

RemoveHTML = strText
End Function
以上的方法雖然都可以去掉括弧內的html標簽,但是這些方法都存在以下問題:
首先,文本內的任何不表示html的尖括弧會被去除.而且兩個尖括弧中間的文本也會被刪掉.換句話說,在文本中插入任何"<"或">"都會出現不可預料的結果.
另外,這種方法不能控制刪除哪些html標簽.比如<b><i>這些無害的標簽通常是允許的.
方法三:使用IE或其他工具
有很多缺點:
"It may be desirable to parse HTML files inside a Web server process in response to a browser page request. However, the WebBrowser control, DHTML Editing Control, MSHTML, and other Internet Explorer components may not function properly in an Active Server Pages (ASP) page or other application run in a Web server application." (http://support.microsoft.com/support/kb/articles/Q244/0/85.ASP?LN=EN-US&SD=gn&FR=0)
方法四:VBScript
以下的函數可以限制到具體的html標簽
簡介:
要控制被刪除的標簽列表,可以通過向TAGLIST常數中添加/刪除標記來實現. 例如,要保留所有的<B>標簽,則從TAGLIST中刪除B. 當前的列表包含了MSDN中的所有html標簽以及 LAYER 標簽. 每個標簽要用";"括起來.
開始標簽和結束標簽都會被刪除,例如"<A...>"和</A...>
若標簽同時在 TAGLIST 和 BLOCKTAGLIST 常數中,則起始標簽和結束標簽之間的所有內容都會被刪除
沒有結束標記的標簽不被視為html標簽,其內容不會被刪除
塊標簽若沒有結尾標記,從此標簽開始到文本結束的所有內容會被刪除
若"<!--"後跟的字元不是空格,注釋標簽不會被刪除
使用這個函數很簡單:
strPlainText = RemoveHTML(strTextWithHTML)
函數內容如下:
Function RemoveHTML( strText )
Dim TAGLIST
TAGLIST = ";!--;!DOCTYPE;A;ACRONYM;ADDRESS;APPLET;AREA;B;BASE;BASEFONT;" &_
"BGSOUND;BIG;BLOCKQUOTE;BODY;BR;BUTTON;CAPTION;CENTER;CITE;CODE;" &_
"COL;COLGROUP;COMMENT;DD;DEL;DFN;DIR;DIV;DL;DT;EM;EMBED;FIELDSET;" &_
"FONT;FORM;FRAME;FRAMESET;HEAD;H1;H2;H3;H4;H5;H6;HR;HTML;I;IFRAME;IMG;" &_
"INPUT;INS;ISINDEX;KBD;LABEL;LAYER;LAGEND;LI;LINK;LISTING;MAP;MARQUEE;" &_
"MENU;META;NOBR;NOFRAMES;NOSCRIPT;OBJECT;OL;OPTION;P;PARAM;PLAINTEXT;" &_
"PRE;Q;S;SAMP;SCRIPT;SELECT;SMALL;SPAN;STRIKE;STRONG;STYLE;SUB;SUP;" &_
"TABLE;TBODY;TD;TEXTAREA;TFOOT;TH;THEAD;TITLE;TR;TT;U;UL;VAR;WBR;XMP;"
Const BLOCKTAGLIST = ";APPLET;EMBED;FRAMESET;HEAD;NOFRAMES;NOSCRIPT;OBJECT;SCRIPT;STYLE;"
Dim nPos1
Dim nPos2
Dim nPos3
Dim strResult
Dim strTagName
Dim bRemove
Dim bSearchForBlock
nPos1 = InStr(strText, "<")
Do While nPos1 > 0
nPos2 = InStr(nPos1 + 1, strText, ">")
If nPos2 > 0 Then
strTagName = Mid(strText, nPos1 + 1, nPos2 - nPos1 - 1)
strTagName = Replace(Replace(strTagName, vbCr, " "), vbLf, " ")
nPos3 = InStr(strTagName, " ")
If nPos3 > 0 Then
strTagName = Left(strTagName, nPos3 - 1)
End If
If Left(strTagName, 1) = "/" Then
strTagName = Mid(strTagName, 2)
bSearchForBlock = False
Else
bSearchForBlock = True
End If

If InStr(1, TAGLIST, ";" & strTagName & ";", vbTextCompare) > 0 Then
bRemove = True
If bSearchForBlock Then
If InStr(1, BLOCKTAGLIST, ";" & strTagName & ";", vbTextCompare) > 0 Then
nPos2 = Len(strText)
nPos3 = InStr(nPos1 + 1, strText, "</" & strTagName, vbTextCompare)
If nPos3 > 0 Then
nPos3 = InStr(nPos3 + 1, strText, ">")
End If

If nPos3 > 0 Then
nPos2 = nPos3
End If
End If
End If
Else
bRemove = False
End If

If bRemove Then
strResult = strResult & Left(strText, nPos1 - 1)
strText = Mid(strText, nPos2 + 1)
Else
strResult = strResult & Left(strText, nPos1)
strText = Mid(strText, nPos1 + 1)
End If
Else
strResult = strResult & strText
strText = ""
End If

nPos1 = InStr(strText, "<")
Loop
strResult = strResult & strText

RemoveHTML = strResult
End Function

J. 正則表達式如何過濾HTML標簽中的屬性值

去掉html標簽: str.replace(/</?[a-zA-Z]+[^><]*>/g,"")
去掉標簽裡面的屬性: str.replace(/<([a-zA-Z]+)\s*[^><]*>/g,"<$1>")
我親自測試通過,操作語言專javascript 樓主還有問題的屬話Hi 我

閱讀全文

與asp用正則過濾html標簽相關的資料

熱點內容
三星空調濾芯怎麼拆卸 瀏覽:650
全自動污水提升器購買 瀏覽:331
超濾和反滲透膜的區別 瀏覽:469
家庭凈水器能裝多少水 瀏覽:687
安仕浦凈水機如何接水路 瀏覽:542
反滲透膜元件組成 瀏覽:254
工業廢水處理工申報 瀏覽:485
emembrane反滲透膜 瀏覽:102
昆明污水池污泥清理哪裡靠譜 瀏覽:942
生產污水處理設備的廠子干什麼活 瀏覽:411
凈水壺的過濾效果 瀏覽:250
家用純水機多少錢一個 瀏覽:566
凈幫子母不綉鋼凈水機多少錢一個 瀏覽:286
含鹽廢水為什麼不能進生化系統 瀏覽:670
反滲透死端過濾進水壓力 瀏覽:162
什麼是污水分為哪幾種 瀏覽:55
英菲尼迪qx60機油濾芯在哪裡 瀏覽:955
泗陽污水廠多少錢每月 瀏覽:999
半透膜的液接電勢 瀏覽:905
瑞虎七怎麼換空氣濾芯 瀏覽:296