`
- 浏览:
76916 次
-
1、
function gotTopic(str,strlen)
if str="" then
gotTopic=""
exit function
end if
dim l,t,c, i
str=replace(replace(replace(replace(str," "," "),""",chr(34)),">",">"),"<","<")
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
gotTopic=left(str,i) & "…"
exit for
else
gotTopic=str
end if
next
gotTopic=replace(replace(replace(replace(gotTopic," "," "),chr(34),"""),">",">"),"<","<")
end function
2、
比如储存图片内容是pic,内容content
function showcontent()
if content<>"" then
response.write left(content,50)
elseif pic<>"" and content="" then
response.write "<img>"&"&pic&"&"</img>"
elseif pic="" and content=""then
response.write "无内容"
end if
end function
3、
'*************************************
'切割内容 - 按行分割(行数)
'*************************************
Function SplitLines(byVal Content,byVal ContentNums)
Dim ts,i,l
ContentNums=int(ContentNums)
If IsNull(Content) Then Exit Function
i=1
ts = 0
For i=1 to Len(Content)
l=Lcase(Mid(Content,i,5))
If l="<br/>" Then
ts=ts+1
End If
l=Lcase(Mid(Content,i,4))
If l="<br>" Then
ts=ts+1
End If
l=Lcase(Mid(Content,i,3))
If l="<p>" Then
ts=ts+1
End If
If ts>ContentNums Then Exit For
Next
If ts>ContentNums Then
Content=Left(Content,i-1)
End If
SplitLines=Content
End Function
'*************************************
'切割内容 - 按字符分割(字符)
'*************************************
Function CutStr(byVal Str,byVal StrLen)
Dim l,t,c,i
If IsNull(Str) Then CutStr="":Exit Function
l=Len(str)
StrLen=int(StrLen)
t=0
For i=1 To l
c=Asc(Mid(str,i,1))
If c<0 Or c>255 Then t=t+2 Else t=t+1
IF t>=StrLen Then
CutStr=left(Str,i)&"..."
Exit For
Else
CutStr=Str
End If
Next
End Function
4、
截取文章摘要(无损HTML)
发表于217 天前 ? ASP ? 暂无评论
鲁莽截取:页面变形
以前曾经做过一个班级主页的ASP系统,在首页显示文章时我用了截取措施。但是那只是鲁莽地用left([string],[length])截取了一下,结果经常因为HTML标记不完全而导致页面变形。
str=left(str,500)
除去HTML元素再截取:太过于简陋
后来想到一个很BT的方法,除去文章的所有HTML元素再截取。效果好了很多,从此再没有出现页面变形的事故。这个方法一直被我使用,从新版的班级主页到SuoMBlog到班级信息平台,全是这东西。但是当我看到百度、网易的无损HTML的截取后,突然发觉自己的代码多么丑陋。
str=left(nohtml(str),500)
'除去HTML元素
Function nohtml(str)
dim re
Set re=new RegExp
re.IgnoreCase =true
re.Global=True
re.Pattern="<(.[^>]*)>"
str=re.replace(str,"")
nohtml=str
set re=nothing
End Function
自动补全HTML元素:嗯,不错,完美
其实想法很早就有了,尤其是今年年初受到HTML特性的启发,但是当时的算法太繁琐,而且效率低,自己也没心思去弄。于是就搁置在那里。今天凌晨睡不着,想到后重新构建了算法,并且在脑子里“试运行”了几遍,优化了一下后就把程序敲出来了。觉得也没有想象中的那么难,轻轻松松就解决了。所以,程序员一定不能懒。
在这个算法里,运用了栈,因为HTML元素有始必有终嘛。看看代码就晓得咯。
str=HTMLCutter(str,500)
'无损截取HTML
Function HTMLCutter(str, l)
'声明一个栈,100层够大吧
Dim sFIFO(100)
'一些参数
p = 1
str = Trim(str)
maxlong = Len(str)
'参数
FlagHTML = False
longStr = 0
'开始扫描文章
For i = 1 To maxlong
'提取第i位的字符
c = Mid(str, i, 1)
'判断HTML元素开始
If c = "<" Then
If FlagHTML Then longStr = longStr + i - istart
FlagHTML = True
istart = i
Else
If FlagHTML Then
If c = ">" Then
iend = i
tmpStr = Mid(str, istart + 1, iend - istart - 1)
'检查元素为开始还是结束
'判断是否是的标签
If Right(tmpStr, 1) <> "/" Then
If Left(tmpStr, 1) = "/" Then
'结束标签
If sFIFO(p) = Right(tmpStr, Len(tmpStr) - 1) Then p = p - 1
FlagHTML = False
Else
'开始标签
p = p + 1
t = InStr(1, tmpStr, " ")
If t <> 0 Then tmpStr = Left(tmpStr, t - 1)
sFIFO(p) = tmpStr
End If
End If
End If
Else
longStr = longStr + 1
If longStr >= l Then Exit For
End If
End If
Next
fStr = Left(str, i)
'把没有闭合的HTML元素补上
For j = p To 1 Step -1
If sFIFO(j) <> "" Then endStr = endStr & " Next
HTMLCutter = fStr & endStr
End Function
5、
给你一个我自己总结的一个函数吧,支持中英文混搭的,在文字排版上非常好用的
Function s_len(str1,num_n,sort_d)
'str1为字符串,num_n为要显示的字数,sort_d为结尾的符号如...或~
'str1=RecovertHTML(str1)
str1=replace(str1, "<","<")'还原字符串
str1=replace(str1, ">", ">")
str1=replace(str1,""",chr(34))
str1=replace(str1,"'",chr(39))
'str1=replace(str1, "<br />",vbCrLf)
str1=replace(str1, " "," ")
str1=replace(str1, " "," ")
length=len(str1)
dim chinese,ii
chinese=0
for ii=1 to length
if asc(mid(str1,ii,1))<1 or asc(mid(str1,ii,1))>255 then
chinese=chinese+1
end if
if chinese+ii>num_n then '超过规定的数,就退出循环
exit for
end if
next
s_len=left(str1,ii)
kk=right(s_len,1)
if asc(mid(str1,1,1))<1 or asc(mid(str1,1,1))>255 then '如果算完后最后一个是双字节数,则总数再减一
iii=ii-1
s_len=left(str1,iii)
end if
if chinese+ii>num_n then '如果标题大于规定的字数时后面加...
s_len=s_len+sort_d
end if
s_len=Replace(s_len,"<br />", " ")
s_len=Replace(s_len,"<br>", " ")
s_len=Replace(s_len,"<","<")
s_len=Replace(s_len,">",">")
s_len=Replace(s_len," ", " ")
s_len=Replace(s_len,chr(34),""")
s_len=Replace(s_len,chr(39),"'")
s_len=Replace(s_len,vbCrLf,"<br />")
'response.write "字符串:" & str1 & "<br>"
'response.write "s_len(command)=" & s_len & "<br>"
'response.write "length+chinese字数为:" & length+chinese & "<br>"
'response.write "chinese+ii=" & chinese+ii & "<br>"
'response.write "ii=" & ii & "<br>"
'response.write "其中中文" & chinese & "个,非中文" & length-chinese & "个<br>"
End Function
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
本篇文章将详细介绍如何使用HTMLParser来实现HTML摘要的截取。 首先,我们需要理解HTML摘要的含义。在网页中,摘要通常是指一段能够概括页面主要内容的文字,它有助于读者快速了解页面的主题。搜索引擎也会使用摘要...
本文将介绍一种实现方法,通过编写JavaScript代码来完成这一任务。 首先,我们要理解问题的核心:不能简单地按字符数截取HTML字符串,因为HTML中的标签会影响文本的布局和显示。例如,图片`<img>`、换行符` `和...
另一种常见的方法是使用专门的插件来实现文章摘要功能。插件可以提供更多定制化的摘要选项,但市面上大部分插件并不支持中文截断,意味着在处理中文字符时可能无法正确截断。 最后,还有一种方法是使用WordPress的...
### *** 文章截取前几行作为列表摘要无损返回HTML代码知识点总结 #### 1. HTML代码的无损截取需求背景 在网页内容展示或者内容摘要生成过程中,经常需要从HTML格式的文章中提取部分内容作为列表的摘要。对于HTML...
本篇文章将介绍两种适用于包含HTML代码的长文本截取方法,确保在截断后仍能保持良好的可读性和格式。 ### 方法一:使用CSS截断字符串 CSS提供了`text-overflow`属性来实现文本截断,这在大部分现代浏览器(包括IE,...
HTML仿CSDN摘要源码是一个用于创建类似CSDN博客摘要效果的代码实现,它主要涉及HTML、CSS和可能的JavaScript技术。在网页设计和开发中,摘要通常用于预览文章或内容的关键点,吸引用户点击阅读完整内容。下面我们将...
通过以上方法,你可以在WordPress的首页展示定制长度且带有“Read More”链接的文章摘要。这种方法既适用于默认的WordPress主题,也适用于自定义开发的主题,有助于提高网站的可读性和用户体验。在实践中,你可以...
这篇文章主要介绍了一个使用PHP编写的自动生成文章摘要的代码,其目标是截取包含HTML代码的文本,并确保在截断过程中不会导致HTML标签未闭合,从而破坏文档结构。这个功能在博客或新闻网站等场景中非常实用,因为它...
### 自动生成文章摘要的代码(JavaScript版本) #### 知识点概述 本文将详细介绍如何使用JavaScript编写一个自动摘要生成器,该摘要生成器能够处理包含HTML标签的文本,并确保生成的摘要不会出现未闭合的HTML标签...
标题中的“PHP版自动生成文章摘要”指的是使用PHP编程语言实现的一种功能,它能够自动从文章内容中提取出摘要,特别是在处理包含HTML代码的文章时,能够确保摘要的生成不会导致HTML标签的不完整或破坏文档结构。...
例如,当你需要在列表页显示文章预览时,可以先调用`GetFirstImageUrl`获取缩略图,再调用`GetContentSummary`截取摘要,从而展示文章的关键信息。 总结,通过C#提供的字符串处理和正则表达式功能,我们可以轻松地...
它能够有效地解决自动截断文本时遇到的标签闭合问题,并提供了一种快速生成文章摘要的方法。不过,需要强调的是,任何自动化工具都有其局限性,因此在使用自动生成的摘要时,应结合实际情况进行适度的编辑和校对。
这个函数在处理网页内容、文章摘要或者限制显示长度等场景中非常有用。需要注意的是,由于HTML解析的复杂性,这个函数可能无法处理所有复杂的情况,但对于大多数常规HTML结构的字符串,它能提供有效的帮助,避免了因...
6. `设为首页,添加收藏`的代码是JavaScript实现的,`addFavorite`方法用于添加书签,`setHomePage`方法用于设置页面为浏览器主页,点击相应的链接即可触发这些操作。 7. `间断和不间断的文字滚动`是HTML和...
在实际的网页开发中,这个功能常用于新闻列表、文章摘要、评论内容等场景。例如,当展示新闻列表时,可能只需要显示每条新闻的前几十个字符作为摘要,以节省空间并提高页面加载速度。通过使用jQuery的截取字符串方法...
这段代码展示了如何在Smarty模板中使用`truncate`过滤器将文章内容截取到35个字符长度,并在末尾添加省略号。布尔值`true`的使用保证了截取操作在最后一个空格处结束,以避免单词被截断。 注意,由于一些外部因素,...
接着,我们想要实现一个功能,即当不提供摘要时,系统能自动生成文章摘要,即正文的前140个字符。我们编写测试代码,创建一个文章对象,并断言摘要应与正文的前140个字符一致。然而,测试失败,因为缺少摘要参数。...
- 显示新闻标题或文章摘要时限制长度。 - 限制用户输入的字段长度。 #### 三、ASP.NET页面中的调用示例 在ASP.NET Web Forms应用中,可以通过以下方式在页面上动态调用`leftx`函数并显示结果: ```html ...