正则表达式,关於过滤HTML的问题

作者&投稿:坚飞 (若有异议请与网页底部的电邮联系)
急!! 正则表达式过滤html~

<%
Function stripHTML(strHTML)
'Strips the HTML tags from strHTML

Dim objRegExp, strOutput
Set objRegExp = New Regexp

objRegExp.IgnoreCase = True
objRegExp.Global = True
objRegExp.Pattern = ""

'Replace all HTML tag matches with the empty string
strOutput = objRegExp.Replace(strHTML, "")
'Replace all with
strOutput = Replace(strOutput, "<", "<")
strOutput = Replace(strOutput, ">", ">")
stripHTML = strOutput 'Return the value of strOutput

Set objRegExp = Nothing
End Function
%>

复制文章的时候想去掉这些东西是比较麻烦的,因为有时候文章里面也有display:none的情况。

不过你如果想要纯文本,不保留复制后的文档格式的话那比较好办。直接把文本把所有HTML标准都去掉,但有时候去掉后,里面的字又留下来了。比较晕。

如果你确定他生成乱码所有的都是固定格式的话,就比较好办了(我认为肯定都是固定格式,因为他后台生的时候是循环)

把这代码保存成HTML网页,双击打开后,把你复制的文档帖到那个框内,点过滤,就可以了:



-->


function $(id){ return document.getElementById(id); }
function filt()
{
var txtbox = $("orgTxt");
var d = $("outputTxt");
d.value = txtbox.value.replace(/(.*?)|(.*?)/ig, "");
}



补充:因为他是让乱码的容器display:none或让字体为0:font-size:0px所以这样替换一般是不会出错的。

最简单的方法,先把所有的<BR>替换为({BR}),然后替换所有的HTML标签(正则/<.+?>/),然后把<BR>换回来

html=html.replace(/<(?!br\b)[\w\/]+?>/gi,"");

以下是测试代码~

<textarea cols=50 rows=10 id="tt"></textarea>
<script language="javascript">
var html="<html> <head> <title> </title> </head> <body><orm></orm><br><br/><brank></brank>";
html=html.replace(/<(?!br\b)[\w\/]+?>/gi,"");
document.getElementById("tt").value=html;
</script>

试试这个 <(?!br)[^>]+>
区分大小写 <BR> 也会被过滤掉

如果是在 JavaScript 中 不区分大小可以这样写
/<(?!br)[^>]+>/i

加个 i

如何把HTML代码过滤一下?
答:Loop '循环 KillHTMLLabel = str2 '将过滤好的字符串返回。End Function '结束。这只是个简单的函数。对于这样的字符串他是无法过滤的:><html>,这个字符串因为在运行第一遍循环时不符合条件,所以程序就会跳到loop后面,但是这个字符串中的html代码却不能过滤掉。最好的办法是用正则表达式来过滤 ...

java如何去掉字符串中的 html标签
答:String regEx_html="<[^>]+>"; //定义HTML标签的正则表达式 Pattern p_script=Pattern.compile(regEx_script,Pattern.CASE_INSENSITIVE);Matcher m_script=p_script.matcher(htmlStr);htmlStr=m_script.replaceAll(""); //过滤script标签 Pattern p_style=Pattern.compile(regEx_style,Pattern.CASE_...

如何过滤掉a标签,又保留<a href=“#”>保留文字 </a>
答:1,过滤所有html标签的正则表达式:]+>2,过滤所有html标签的属性的正则表达式:$html=preg_replace("/]*>/","",$html);3,过滤部分html标签的正则表达式的排除式(比如排除,即不过滤):]+>4,过滤部分html标签的正则表达式的枚举式(比如需要过滤等):]*>5,过滤部分html标签的属性的正则表达式...

java正则表达式过滤html p标签
答:用JavaScript方法如下,JAVA语言类似:'你的HTML文本'.replace(/.+>(.+)<.+/,'$1')

php正则表达式过滤某些HTML标签代码
答:如果只要 <b> 标签,不用“过滤”的方法,用“提取”的方法更简单。str = '<img src="xxx"><b>aaa</b><br>\n<b>b\nbb</b><span style="color:#FF0000;">yyy</span>';pattern = '/<b>(((?!<\/b>).)*)<\/b>/mi';preg_match_all($pattern, $str, $matches, PREG_SET...

js 正则表达式去除指定的HTML标签
答:可以这么写:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "<html xmlns="<head><title>匹配正则表达式</title><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><script type="text/javascript"> function t1() { var cont = document.get...

正则表达式筛选html代码
答:Regex reg = new Regex(@"<li><a href=""(?<url>[^""]*)"" target=""_blank"">(?<title>[^<]*)</a></li>");string html = "<div>sadfasdfasd</div> <div class=\"video_1_left\"> <UL> <li><a href=\"/news/12718.html\" target=\"_blank\">标题sadfasdfasdf...

在NOTEPAD++里,用正则表达式去除所有HTML标记,保留剩下内容
答:正则表达式如下:<[^>]+>

freemarker 正则表达式 过滤 html标签
答:匹配img标签的正则是<img[^>]+>

用正则表达式过滤获取到的HTML,取得HTML里其中的一段代码
答:function returnHtml(){ var str = "123<ul class=\"list01 font_s_14 line_h_25\">456</span></li></ul><div class=\"box_hr16\">";var res = str.replace(/<ul class=\"list01 font_s_14 line_h_25\">(.*)</span></li></ul><div class=\"box_hr16\">/,"");if...