| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2069 人关注过本帖
标题:截取部分文章内容后有一些标签显示出来了,很不好看,如何在下面的截取代码 ...
只看楼主 加入收藏
tepnidh
Rank: 2
等 级:论坛游民
帖 子:192
专家分:24
注 册:2009-8-2
收藏
得分:0 
回复 10楼 lele2007
ele2007老师,您好!再次表示感谢!学生实在太菜了,您写的下面这段代码是独立使用,还是与上一段代码合起来使用?如果独立使用,会出现以下错误:
错误类型:
Microsoft VBScript runtime (0x800A000D)
Type mismatch: 'DelHtml'

如果是合起来用,怎样用呢?

最后效果是:不显示标签,大于规定字数用省略号表示,另外就是能修改字体的大小,颜色及行距。请您再帮帮我吧,就差这么一点了!!!




[ 本帖最后由 tepnidh 于 2010-9-10 14:11 编辑 ]
2010-09-10 14:04
lele2007
Rank: 5Rank: 5
来 自:广东省深圳
等 级:职业侠客
威 望:6
帖 子:1028
专家分:305
注 册:2007-9-4
收藏
得分:0 
程序代码:
<%
Function DelTitle(l_String,l_Number,l_show)
Dim ok
If Len(l_String)>=l_Number Then
  ok=Left(l_String,l_Number) & l_show
Else
  ok=l_String
End If
DelTitle=ok

End Function

function DelHtml(str)
if Instr(str,"<")>=1 then
  str=Lcase(str)
  dim re
  Set re=new RegExp
  re.IgnoreCase=true
  re.Global=True
  re.Pattern="(\<.[^\<]*\>)"
  str=re.replace(str,"")
  DelHtml=str
  set re=nothing
else
  DelHtml=str
end if
end function

%>

<%

 dim str

 str = "<font color='red'>乐乐乐乐乐乐乐乐乐乐乐乐乐乐乐乐乐乐,编程论坛bbs.bccn.net</font>"

 response.write "原样输出:"&str&"<br>"&vbcrlf

 response.write "过滤HTML:"&DelHtml(str)&"<br>"&vbcrlf

 response.write "截取指定内容:"&DelTitle(DelHtml(str),10,"...")&"<br>"&vbcrlf
%>
要调用函数使用。。
你把str换成:Recwzxs.Fields.Item("content").Value  测试。

估计你的是读取数据库内容循环显示所有文章。。显示时截取一部份内容。。显示。。
如果要保留行距及文字大小还有颜色。。这个做法是过滤了所有的HTML只保留了纯文本。。

保留某些样式。。最好用HTML标签自动闭合。。或者在数据库里新建一个字段。。主要用于保存文章的摘要。。(建议你用这种,方便一点)

一起学习讨论嘛。。叫老师。。好别扭的哟。。



[ 本帖最后由 lele2007 于 2010-9-10 14:28 编辑 ]

学习编程www.
2010-09-10 14:22
lele2007
Rank: 5Rank: 5
来 自:广东省深圳
等 级:职业侠客
威 望:6
帖 子:1028
专家分:305
注 册:2007-9-4
收藏
得分:0 
程序代码:
<%
Function DelTitle(l_String,l_Number,l_show)
Dim ok
If Len(l_String)>=l_Number Then
  ok=Left(l_String,l_Number) & l_show
Else
  ok=l_String
End If
DelTitle=ok

End Function


' ----------------------
' 自动闭合HTML
' ----------------------
Function closeHTML(strContent)
    Dim arrTags, i, OpenPos, ClosePos, re, strMatchs, j, Match
    Set re = New RegExp
    re.IgnoreCase = True
    re.Global = True
    arrTags = Array("a", "p", "div", "span", "table", "ul", "font", "b", "u", "i", "h1", "h2", "h3", "h4", "h5", "h6")
    For i = 0 To UBound(arrTags)
        OpenPos = 0
        ClosePos = 0
        re.Pattern = "\<" + arrTags(i) + "( [^\<\>]+|)\>"
        Set strMatchs = re.Execute(strContent)
        For Each Match in strMatchs
            OpenPos = OpenPos + 1
        Next
        re.Pattern = "\</" + arrTags(i) + "\>"
        Set strMatchs = re.Execute(strContent)
        For Each Match in strMatchs
            ClosePos = ClosePos + 1
        Next
        For j = 1 To OpenPos - ClosePos
            strContent = strContent + "</" + arrTags(i) + ">"
        Next
    Next
    closeHTML = strContent
End Function

Function DelTitle(l_String,l_Number,l_show)
Dim ok
If Len(l_String)>=l_Number Then
  ok=Left(l_String,l_Number) & l_show
Else
  ok=l_String
End If
DelTitle=ok
End Function


%>

<%

 dim str

 str = "<strong><font color=""#FF0000"">下面就是截取后文章的部分内容,但文中有标签,如何才能去掉标签?<br /></font></strong><font color=""#FF0000"">在DW中我</font>用一个插件来截取部分文章内容,但是截取后,把那些标签什么都显示出来了,很不好看,就像去除HTML那样的效果,现在我想&lt;BR&gt;把这些标签都过滤掉,也就是说,就只显示文  字,&lt;IMG style<font color=""#990033"">=&quot;WIDTH: 192px; HEIGHT: 138px&quot; height=6</font>00src=&quot;/eWebEditor/UploadFile/201098204055477.jpg width=796 border=0&gt;不要把那些也标签显示出来,插入图片显示不出来,只显示代码········截取字符串的代码请看idn<font color=""#FF0000"">ex.asp或记事本,  应该怎么改?后台</font>修改页面是&lt;FONT  face=Verdana&gt;hxg-scgk.asp。&lt;/FONT&gt;本人菜鸟,请大家帮帮忙·····谢谢!!!&lt;BR&amp;gt;DW中我用一个插件来截取部分文章内容,但是截取后,把那些标签什么都显示出来了…"



 response.write DelTitle(closeHTML(str),450,"...")&"<br>"
%>

也尝试一下这个。。自动闭合HTML,截取了指定的内容。保留了行距,颜色等一些样式。。
这个闭合HTML的是pjblog博客程序里的。^_^...

有朋友使用过好像有些问题。。http://www.  你参考一下。
觉得麻烦就新建一个字段,保留摘要。。

[ 本帖最后由 lele2007 于 2010-9-10 14:41 编辑 ]

学习编程www.
2010-09-10 14:39
tepnidh
Rank: 2
等 级:论坛游民
帖 子:192
专家分:24
注 册:2009-8-2
收藏
得分:0 
回复 13楼 lele2007
谢谢您耐心细致地指点!感动。。。我会好好研究的!请慢用。。。
2010-09-10 15:00
hams
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:18
帖 子:912
专家分:3670
注 册:2008-7-30
收藏
得分:0 
DelHtml过滤HTML代码会保留回车字符,如果去掉全部HTML字符可以使用FilterHtml。

俺不高手,俺也是来学习的。
俺的意见不一定就对,当你不认同时请点忽视按钮。
当走到十字路口不知该如何走时,可在论坛问下路,但你若希望别人能一路把你送到目的地,显然是不现实的,因为别人也有自己要走的路。
2010-09-10 15:13
hams
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:18
帖 子:912
专家分:3670
注 册:2008-7-30
收藏
得分:0 
网上有人这么写:

Function delHtml(strHtml) '做了一个函数名叫delhtml

Dim objRegExp, strOutput
Set objRegExp = New Regexp ' 建立正则表达式

objRegExp.IgnoreCase = True ' 设置是否区分大小写
objRegExp.Global = True '是匹配所有字符串还是只是第一个
objRegExp.Pattern = "(<[a-zA-Z].*?>)|(<[\/][a-zA-Z].*?>)" ' 设置模式引号中的是正则表达式,用来找出html标签

strOutput = objRegExp.Replace(strHtml, "") '将html标签去掉
strOutput = Replace(strOutput, "<", "<") '防止非html标签不显示
strOutput = Replace(strOutput, ">", ">")
delHtml = strOutput

Set objRegExp = Nothing
End Function

'srt1是你要去除html代码字符串,可以其它任何地方读取过来。
str1 = "<meta http-equiv=""refresh"" content=""0;URL=apple/default.htm""><title>正</3>在转到 ... ...</title>"
'应用函数
Response.Write(delHtml(str1))

俺不高手,俺也是来学习的。
俺的意见不一定就对,当你不认同时请点忽视按钮。
当走到十字路口不知该如何走时,可在论坛问下路,但你若希望别人能一路把你送到目的地,显然是不现实的,因为别人也有自己要走的路。
2010-09-10 15:15
hams
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:18
帖 子:912
专家分:3670
注 册:2008-7-30
收藏
得分:0 
还有这样写的:

ASP 过滤HTML函数代码:

<%'过滤HTML代码
Function ClearHTML(strHTML)
Dim objRegExp, Match, Matches
Set objRegExp = New Regexp
objRegExp.IgnoreCase = True
objRegExp.Global = True
objRegExp.Pattern = "<.+?>"
Set Matches = objRegExp.Execute(strHTML)
For Each Match in Matches
strHtml=Replace(strHTML,Match.Value,"")
Next
ClearHTML=strHTML
Set objRegExp = Nothing
End Function
%>

用法:

Response.write ClearHTML(Rs("text"))


<%=left(CleanHTML(rs("text")),70)%>


显示的时候,回车、等都会被当着空格对待,而且多个连续的空格只显示一个空格。

俺不高手,俺也是来学习的。
俺的意见不一定就对,当你不认同时请点忽视按钮。
当走到十字路口不知该如何走时,可在论坛问下路,但你若希望别人能一路把你送到目的地,显然是不现实的,因为别人也有自己要走的路。
2010-09-10 15:16
tepnidh
Rank: 2
等 级:论坛游民
帖 子:192
专家分:24
注 册:2009-8-2
收藏
得分:0 
回复 17楼 hams
多谢,学生感激不尽!
2010-09-10 16:49
tepnidh
Rank: 2
等 级:论坛游民
帖 子:192
专家分:24
注 册:2009-8-2
收藏
得分:0 
回复 12楼 lele2007
在数据库里新建一个字段。。主要用于保存文章的摘要。。”简单易行,的确是一个不错的办法!谢谢!
2010-09-10 16:53
快速回复:截取部分文章内容后有一些标签显示出来了,很不好看,如何在下面的截取 ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.026208 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved