一个很经典的问题

zyh791211 2005-12-17 04:46:46
在新闻系统中,经常复制其他网站的新闻,但其中的表格信息<p><div> 等就都复制了,这样的后台新闻编辑器察看html代码可以看到, 如果不去掉这些html标记的话,我在前台调用内容摘要的时候就会出现大片的空白,导致网页变形,我现在只想要其中的文字,而把那些html标记去掉(虽然在前台没明文显示,但真是存在),我该怎么做,求助。
...全文
201 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
wangyingdong 2005-12-20
  • 打赏
  • 举报
回复
直接复制到记事本,在粘进来!!这样HTML标记就没有了!
wangyingdong 2005-12-20
  • 打赏
  • 举报
回复
去掉所有HTML标记函数

去掉所有HTML标记
Function FilterHTML(str,strlen)
Dim re
Set re=new RegExp
re.IgnoreCase =True
re.Global=True
re.Pattern="<(.[^>]*)>"
str=re.Replace(str,"")
set re=Nothing
Dim l,t,c,i
l=Len(str)
t=0
For i=1 to l
c=Abs(Asc(Mid(str,i,1)))
If c>255 Then
t=t+2
Else
t=t+1
End If
If t>=strlen Then
cutStr=left(str,i)&"..."
Exit For
Else
cutStr=str
End If
Next
cutStr=Replace(cutStr,chr(10),"")
cutStr=Replace(cutStr,chr(13),"")
End Function

http://www.dwww.cn/new/20051217164654745.html
chinastorm 2005-12-20
  • 打赏
  • 举报
回复
study
Macon8800 2005-12-20
  • 打赏
  • 举报
回复
我这给你一个函数


function delhtmlcode(str,inum)
'str="<dsfd>aaaa<sdfa>sdfsard<sdfasf>dfsfs"
dim conversion_str,icur'conversion_str为取出的不是html的字符串,icurstart为"<"的开始位置,icurend为">"的开始位置
conversion_str=""
str=str
for i=1 to len(str)
icurstart=instr(i,str,"<")
if cint(icurstart)=0 then
conversion_str=conversion_str & mid(str,i)'在此处<><
i=len(str)
else
conversion_str=conversion_str&mid(str,i,icurstart-i)'取出<前面的字符串
icurend=instr(icurstart,str,">")
if cint(icurend)=0 then
conversion_str=conversion_str&mid(str,icurstart)
i=len(str)
else'如果查到<>
i=icurend
end if
end if
next
'response.write conversion_str
conversion_str=replace(conversion_str," ","")
if inum=0 then
delhtmlcode=conversion_str
else
delhtmlcode=addleft(conversion_str,inum)
end if
end function

function addleft(content,num)
if num>len(content) then
addleft=content
else
addleft=left(content,num)&"..."
end if
end function
百衲本 2005-12-20
  • 打赏
  • 举报
回复
楼上有理,用记事本做中转
wentianxiaohai 2005-12-20
  • 打赏
  • 举报
回复
复制新闻以后,放入记事本里边,然后再复制记事本里边的信息就可以去掉那些html代码了!
zyh791211 2005-12-20
  • 打赏
  • 举报
回复
我已经试验了,它连 ,p等统统显示.
ybfqlyq 2005-12-19
  • 打赏
  • 举报
回复
你用一下試下嘛
zyh791211 2005-12-19
  • 打赏
  • 举报
回复
ybfqlyq(·YBFQ Restarting.....Go——>):server.htmlencode(rs("content")),这个岂不是连content中的html代码都明文显示了吗?
zyh791211 2005-12-19
  • 打赏
  • 举报
回复
谢谢大笨狼,第一个太复杂了吧,第二个还是不能屏蔽table tr,td等信息阿, 还有楼上的notepad过滤格式,什么意思,怎么做?
hanyuice(ジ.寒羽.ベ↘) :禁止HTML标签的工具放进去?哪里有,会不会禁止后没有文字格式了呢?
indexroot 2005-12-18
  • 打赏
  • 举报
回复
或者用notepad过滤格式
超级大笨狼 2005-12-17
  • 打赏
  • 举报
回复
哦,忘记返回值了,自己加上
超级大笨狼 2005-12-17
  • 打赏
  • 举报
回复





function HTMLfilter(str)
dim regEx
set regEx = new RegExp
regEx.Global = true
regEx.ignoreCase = true
regEx.Pattern = "<[^<>]*>"
str = regEx.Replace(str, "")
regEx.Pattern = "&[\w\W]+#;"
str = regEx.Replace(str, "")
end function

实验这个,在网吧,不准确啊,谅解

alert HTMLfilter(<p><div> )
超级大笨狼 2005-12-17
  • 打赏
  • 举报
回复
<button onclick="vbs:gogogo">开始处理</button><br/>

csdnFAQ转换txt格式专用工具:<br/>

<SCRIPT LANGUAGE="vbscript">
'**************************
'*****超级大笨狼***********
'**************************
on error resume next
window.resizeTo window.screen.availWidth,window.screen.availHeight
window.moveTo 0,0


Set fso = CreateObject("Scripting.FileSystemObject")
dim thisFileDir'定义本文件绝对路径
dim thisFileName'定义本文件名
dim thisFileFolder'定义本文件夹路径


dim regEx
set regEx = new RegExp
regEx.Global = true



thisFileDir = replace(window.location.href,"file:///","")
thisFileDir = unescape(replace(thisFileDir,"/","\"))
thisFileName = LastOne(thisFileDir,"\")
thisFileFolder=getFolderDir(thisFileDir)

currentDir = thisFileFolder




function HTMLfilter(str)
'去掉开始到Q:间的东西
regEx.Pattern = "<HTML>[\w\W]*Q :</b>"
str = regEx.Replace(str, "")
'
str = replace(str,"<br/>" ,vbcrlf)


regEx.Pattern = "<[^<>]*>"
str = regEx.Replace(str, "")

str = replace(str," " ," ")
str = replace(str,">",">")
str = replace(str,"<","<")
str = replace(str,""",chr(34))
str = replace(str,vbtab ,"")
str = replace(str,"&","&")

regEx.Pattern = "[\s]*主要解答者:[\w\W]*查看[\s]*"
str = regEx.Replace(str, vbcrlf)

regEx.Pattern = "[\s]*网站简介[\w\W]*All rights reserved[\s]*"
str = regEx.Replace(str, "")
regEx.Pattern = "(^\s*)|(\s*$)"
str = regEx.Replace(str, "")
HTMLfilter = trim(str)
end function

function getFolderDir(fullDir)
'输入得到全路径,得到文件夹路径
s=LastOne(fullDir,"\")
getFolderDir = left(fullDir,len(fullDir)-len(s))
end function

Function LastOne(Str,splitStr)
'输入字符和分隔符,得到最后一部分
LastOne = right(Str,len(Str)-InStrRev(Str,splitStr))
End Function

sub seachFile(theFolder)

dim f,f1,st,fd,fd1,t
set f = fso.GetFolder(theFolder)

for each f1 in f.Files
if lcase(right(f1.name,4))=".htm" then
set st = fso.OpenTextFile(f1,1,1)
'全读
if not st.AtEndOfStream then
t=st.readAll


set st = fso.OpenTextFile(getName(f1.name),2,1)
t=HTMLfilter(t)
st.write t
end if
end if
next
set fd = fso.GetFolder(theFolder)
for each fd1 in fd.SubFolders
seachFile fd1
next
end sub

sub gogogo()
seachFile thisFileFolder
alert "处理完毕"
end sub

function getName(x)
dim Arr,a,newName
newName=x
Arr=array("/","\",":","*","?",chr(34),"|","<",">",chr(39))
for each a in Arr
newName=replace(newName,a,"")
next
getName=replace(newName,".htm",".txt")
end function
</script>


oomen 2005-12-17
  • 打赏
  • 举报
回复
昨天看的一个新闻系统里就有这个功能,就是一段函数限制用户输入HTML
然后DW也有专门的插件
hanyuice 2005-12-17
  • 打赏
  • 举报
回复
以上的方法是可行的
有些网站的文章管理系统的后台在添加文章时用的是插入式的编辑器,生成后你复制会复制到很多HTML标签
你可以将你复制的代码找一个禁止HTML标签的工具放进去,然后应该是可以的!
ybfqlyq 2005-12-17
  • 打赏
  • 举报
回复
其實可以直接用在線編輯器做的,例如EWEBEDITOR就很不錯,有個文本編輯方式的,把HTML格式的都去掉了。很爽的。還有你可以加個server.htmlencode(rs("content"))正常顯示內容的

28,391

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧