永发信息网

急!! 正则表达式过滤html

答案:2  悬赏:30  手机版
解决时间 2021-01-23 01:02
  • 提问者网友:沉默菋噵
  • 2021-01-22 10:41
请问各位高手,我想用正则表达式找到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有两个
平安信用卡额度二万,能刷出二万二,什么原因?
今年研究生网上报名已经生成报名号,但发现毕业专
俏朵美甲店地址在什么地方,想过去办事,
川可以组什么词语
单选题工业制硫酸用硫磺作为原料产生的污染较用硫
快捷宾馆(驻马店遂平县)地址在什么地方,想过去办
忻州六中为啥不能住校
美味特色的温州麦面怎么做好吃又简单,做
推荐资讯