導航:首頁 > 凈水問答 > js正則表達式過濾html標簽

js正則表達式過濾html標簽

發布時間:2022-09-23 12:52:27

1. 怎麼使用js過濾html標簽

你可以利用正則表達式來剔除這些標簽,也就是將所有的html類的標簽都替換為空即可:

//去除HTML標簽
str=str.replace(/</?[^>]*>/g,'');

2. 用正則表達式過濾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();
}
}

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

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

4. js 正則表達式去除指定的HTML標簽

可以這么寫:

<!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Strict//EN""

<htmlxmlns="

<head>
<title>匹配正則表達式</title>
<metahttp-equiv="Content-Type"content="text/html;charset=utf-8"/>

<scripttype="text/javascript">
functiont1(){
varcont=document.getElementById('cont');
varcv=cont.value;

varreg=/<a[s]+[^>]+>([^<>]+)</a>/gi;//正則表達式

alert(cv.replace(reg,''));
}
</script>

<styletype="text/css">
textarea{
width:400px;
height:200px;
}
</style>
</head>
<body>
<p>
<textareaid="cont"></textarea>
</p>
<p><inputtype="button"value="把鏈接換成空鏈接"onclick="t1();"/></p>
</body>
</html>

5. js正則表達式過濾html標簽,這個正則式怎麼寫

代碼雖短功能卻超強,運行效率也很高!
public static string ClearHtmlCode(string text)
{
text = text.Trim();
if (string.IsNullOrEmpty(text))
return string.Empty;
text = Regex.Replace(text, "[/s]{2,}", " "); //two or more spaces
text = Regex.Replace(text, "(<[b|B][r|R]/*>)+|(<[p|P](.|/n)*?>)", " "); //<br>
text = Regex.Replace(text, "(/s*&[n|N][b|B][s|S][p|P];/s*)+", " "); //
text = Regex.Replace(text, "<(.|/n)*?>", string.Empty); //any other tags
text = Regex.Replace(text, "/<//?[^>]*>/g", string.Empty); //any other tags
text = Regex.Replace(text, "/[ | ]* /g", string.Empty); //any other tags
text = text.Replace("'", "''");
text = Regex.Replace(text, "/ [/s| | ]* /g", string.Empty);
return text;
}

6. JS如何去除 特定 HTML標簽

JS如何去除特定 HTML標簽通常採用的方法是正則匹配法。
1、匹配<開始>結束的全局正專則:
var regex = /(<([^>]+)>)/ig
2、body內部屬的p標簽
, body = "<p>test</p>"
3、根據正則表達式直接替換為""
, result = body.replace(regex, "");
4、列印結果,顯示test
console.log(result);

7. js過濾HTML標簽以及空格的思路及代碼

|

代碼如下:
function
setContent(str)
{
str
=
str.replace(/</?[^>]*>/g,'');
//去除HTML
tag
str.value
=
str.replace(/[
|
]*n/g,'n');
//去除行尾空白
//str
=
str.replace(/n[s|
|
]*r/g,'n');
//去除多餘空行
return
str;
}

測試的時候發現這段代碼不能過濾掉網頁中空格字元(即:
)。於是自己又改造了一下:
代碼如下:
function
removeHTMLTag(str)
{
str
=
str.replace(/</?[^>]*>/g,'');
//去除HTML
tag
str
=
str.replace(/[
|
]*n/g,'n');
//去除行尾空白
//str
=
str.replace(/n[s|
|
]*r/g,'n');
//去除多餘空行
str=str.replace(/
/ig,'');//去掉
return
str;
}

恩,我的要求達到了。
現在來稍稍解釋一下所用到的三個正則表達吧(需要說明的是,因為自己也是剛剛接觸,也許我的解釋並不是正確的,僅供參考):
第一個:/</?[^>]*>/g
在js中正則表達式是以“/”開頭的,後面的/g,含義是表示全局模式,意思是在將匹配的模式應用於整個字元串,而不是在第一次匹配上之後就停止匹配了。
</?[^>]*>
這個分開來解釋,其中第二個字元“”是一個轉移字元,用來轉移後面的”/”字元的。?匹配0或1個正好在它之前的那個字元。注意:這個元字元不是所有的軟體都支持的。所以</?就是匹配html標簽中的”</”格式或者“<”格式的。
再來說[^>]*>。[]是含義是:
^的含義是:匹配一行的開始。例如正則表達式^When
in能夠匹配字元串"When
in
the
course
of
human
events"的開始,但是不能匹配"What
and
When
in
the"。意思就是匹配以“When
in”開頭的文字。
*的含義是:匹配0或多個正好在它之前的那個字元。例如正則表達式。*意味著能夠匹配任意數量的任何字元
因此[^>]*意思是匹配>之外的字元。所以[^>]可以匹配出的模式可以像下面這樣的:
div
我需要的文字</div
我需要的文字</p
*和前面的[^>]結合在一起就可以匹配下面這些字元了:
div>我需要的文字</div
p>我需要的文字</p
br
/
再加上後面的>就可以匹配下面的字元了:
div>我需要的文字</div>
p>我需要的文字</p>
br
/>
這樣就完成了一對HTML標簽的匹配了。(多句話,總覺得這個匹配有點啰嗦,但是不知道到底在哪個地方啰嗦)
第二個:/[
|
]*n/g:我也沒有看懂
第三個:/
/ig:就是直接查找
字元,後面的/ig的含義是在全局模式下進行不區分大小寫的查找。g代表全局,i表示不區分大小寫。

8. js如何去除html標簽

<scripttype="text/javascript">
String.prototype.stripHTML=function(){
varreTag=/<(?:.|s)*?>/g;
returnthis.replace(reTag,"");
}
varsTest="<b>thiswouldbebold</b>";
alert(sTest.stripHTML());
</script>
<body>
</body>

請參閱以上的 javascript代碼, 看看是你想要的效果不

如有疑問專,請及時溝屬通

9. js正則表達式過濾html標簽,這個正則式怎麼寫

代碼雖短功能卻超強,運行效率也很高!
public
static
string
ClearHtmlCode(string
text)
{
text
=
text.Trim();
if
(string.IsNullOrEmpty(text))
return
string.Empty;
text
=
Regex.Replace(text,
"[/s]{2,}",
"
");
//two
or
more
spaces
text
=
Regex.Replace(text,
"(<[b|][r|R]/*>)+|(<[p|P](.|/n)*?>)",
"
");
//
text
=
Regex.Replace(text,
"(/s*&[n|N][b|B][s|S][p|P];/s*)+",
"
");
//
text
=
Regex.Replace(text,
"<(.|/n)*?>",
string.Empty);
//any
other
tags
text
=
Regex.Replace(text,
"/
/?[^
]*>/g",
string.Empty);
//any
other
tags
text
=
Regex.Replace(text,
"/[
|
]*
/g",
string.Empty);
//any
other
tags
text
=
text.Replace("'",
"''");
text
=
Regex.Replace(text,
"/
[/s|
|
]*
/g",
string.Empty);
return
text;
}

10. 如何用正則表達式去掉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,在瀏覽器中設置即可!

閱讀全文

與js正則表達式過濾html標簽相關的資料

熱點內容
污水提升泵澤德e2 瀏覽:250
污水處理站做什麼資料 瀏覽:37
化工工業廢水量怎麼計算 瀏覽:142
華生凈凈化器濾網怎麼清潔 瀏覽:947
為什麼純凈水不能蒸雞蛋糕 瀏覽:789
污水處理公司的種類有哪些 瀏覽:430
edi標准下載 瀏覽:60
反滲透產水回收率低怎麼回事 瀏覽:608
被污水弄一身寓意什麼 瀏覽:792
挖個空瓶子怎麼做飲水機 瀏覽:587
過濾花灑濾芯什麼樣的好 瀏覽:900
台州市垃圾污水處理 瀏覽:92
污水處理後廢渣怎麼辦 瀏覽:875
小蛋空氣凈化器怎麼連不上網 瀏覽:841
神仙凈水器是什麼樣的 瀏覽:195
集美污水廠尾水排海管 瀏覽:157
帶過濾石頭花灑 瀏覽:271
運城愛惠浦凈水器加盟哪個好 瀏覽:180
小米空氣凈化器怎麼調節通風 瀏覽:698
自製飲水機不用熱熔膠怎麼做 瀏覽:738