永发信息网

急!! 正则表达式过滤html

答案:2  悬赏:30  手机版
解决时间 2021-01-23 01:02
请问各位高手,我想用正则表达式找到html指定的标签,然后过滤掉标签,用string保存其中间的文本内容。
找了很多质料,就是没找到一个合适的,请帮忙指点一下。
例如:





把代码中的“多云”,“-2℃ ~ 11℃”抽出来,分别保存到string变量中
最佳答案
  • 五星知识达人网友:纵马山川剑自提
  • 2021-01-22 11:40
<%
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 < and > with < and >
strOutput = Replace(strOutput, "<", "<")
strOutput = Replace(strOutput, ">", ">")
stripHTML = strOutput 'Return the value of strOutput

Set objRegExp = Nothing
End Function
%>
全部回答
  • 1楼网友:等灯
  • 2021-01-22 11:58
在做一些网站(特别是bbs之类)时,经常会有充许用户输入html样式代码,却禁止脚本的运行的需求, 以达到丰富网页样式,禁止恶意代码的运行。 当然不能用 htmlencode 和 htmldecode 方法,因为这样连基本的html代码会被禁止掉。 我在网上搜索,也没有找到好的解决办法,倒是收集了一些脚本攻击的实例: 1. <script>标记中包含的代码 2. <a href=javascript:...中的代码 3. 其它基本控件的 on...事件中的代码 4. iframe 和 frameset 中载入其它页面造成的攻击 有了这些资料后,事情就简单多了,写一个简单的方法,用正则表达式把以上符合几点的代码替换掉: public string wipescript(string html) { system.text.regularexpressions.regex regex1 = new system.text.regularexpressions.regex(@"<script[\s\s]+</script *>",system.text.regularexpressions.regexoptions.ignorecase); system.text.regularexpressions.regex regex2 = new system.text.regularexpressions.regex(@" href *= *[\s\s]*script *:",system.text.regularexpressions.regexoptions.ignorecase); system.text.regularexpressions.regex regex3 = new system.text.regularexpressions.regex(@" on[\s\s]*=",system.text.regularexpressions.regexoptions.ignorecase); system.text.regularexpressions.regex regex4 = new system.text.regularexpressions.regex(@"<iframe[\s\s]+</iframe *>",system.text.regularexpressions.regexoptions.ignorecase); system.text.regularexpressions.regex regex5 = new system.text.regularexpressions.regex(@"<frameset[\s\s]+</frameset *>",system.text.regularexpressions.regexoptions.ignorecase); html = regex1.replace(html, ""); //过滤<script></script>标记 html = regex2.replace(html, ""); //过滤href=javascript: (<a>) 属性 html = regex3.replace(html, " _disibledevent="); //过滤其它控件的on...事件 html = regex4.replace(html, ""); //过滤iframe html = regex5.replace(html, ""); //过滤frameset return html; } 此方法输入可能包含脚本的html代码,返回则就是干净的代码了。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看








中央气象台2007年03月29日20时发布
-2℃ ~ 11℃
多云

山村宾馆(驻马店遂平县)地址好找么,我有些事
佳颖美甲地址有知道的么?有点事想过去!
皇冠商务宾馆(驻马店遂平县)地址在哪,我要去
帅的英语单词怎么写
可调电压、电流驱动电路板怎么测量输出电流
港湾旅馆(驻马店遂平县)地址在哪,我要去那里
已知关于x的一元二次方程(a-1)x2-2x+1=0有
平安信用卡额度二万,能刷出二万二,什么原因
今年研究生网上报名已经生成报名号,但发现毕
俏朵美甲店地址在什么地方,想过去办事,
川可以组什么词语
单选题工业制硫酸用硫磺作为原料产生的污染较
快捷宾馆(驻马店遂平县)地址在什么地方,想过
忻州六中为啥不能住校
美味特色的温州麦面怎么做好吃又简单,做
推荐资讯
I don't think the experiment is failure.A
这件灰色字母卫衣什么牌子
金七制药是云南白药下属子公司么?
求种子百度云盘 谢啦
谁有美剧穹顶之下的百度云。要有中文字幕的。
那位朋友知道戴南有手工做的货源
具体劳动新创造劳动力自身的价值。 抽象劳动
烟瘾是怎么染上的?
燕山大学机械制造及自动化好吗
200mL?2.00mol/L的Al2(SO4)3溶液中含有____
粉掌可以放在办公桌上养吗
玛利娅·蒙特梭利早教世家(宁波海曙区)地
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?