導航:首頁 > 凈水問答 > 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標簽相關的資料

熱點內容
醫院超純水需要什麼資質 瀏覽:963
什麼相當半透膜滲透作用 瀏覽:559
小米凈水器需要用什麼水 瀏覽:533
乙醇對不飽和樹脂會變慢嗎 瀏覽:588
新買的飲水機為什麼會有塑料味 瀏覽:451
水垢溫度 瀏覽:896
污水排放超標十四倍處罰多少 瀏覽:367
edi的兩大要素 瀏覽:25
溶劑型sma樹脂 瀏覽:103
pvdf超濾芯內壓式好不好 瀏覽:496
豪爵vf125怎麼換空氣濾芯 瀏覽:672
安吉爾a6新濾芯怎麼清洗 瀏覽:713
怎樣去除茶壺里的水垢小妙招 瀏覽:854
反滲透r0膜好壞如何區別 瀏覽:129
南宮純水岸的電費怎麼交 瀏覽:145
為什麼飲水機一股狐臭味 瀏覽:736
cod中廢水怎麼處理 瀏覽:802
水處理化驗室安全管理制度 瀏覽:446
焦化廢水吡啶 瀏覽:606
天正中污廢水管的坡度如何設置 瀏覽:591