方法一:
在文章列表的时候,如果标题过长,往往会撑破表格破坏页面形象。一般做法是略去超长部分而以省略号代替。比如要取前10个字符,则可写出以下语句:
ifLen(title)>10thentitle=Left(title,9)+"…"
'凑起来刚好10个字符
而我们中国人要面对现实——汉字宽度是字母的两倍。所以得设计一个函数,用一个变量计算字符串长度,如果遇到的是字母,这个长度就加1,如果遇到的是汉字,长度加2:
FUNCTIONcuttitle(str,strlen)
'str为待切标题,strlen为截取长度(按字母计算)
dimtmplen,tmpstr,i,s
tmpstr=""
tmplen=0
str=trim(str)
ifstr=""thenexitfunction
fori=1toLen(str)
s=mid(str,i,1)
tmpstr=tmpstr&s
tmplen=tmplen+1
ifAsc(s)<0thentmplen=tmplen+1
'如果是汉字,长度再加1
iftmplen>strlenthen
tmpstr=Left(tmpstr,Len(tmpstr)-2)&"…"
exitfor
endif
next
cuttitle=tmpstr
ENDFUNCTION
----------------------------------------------------------------------------
方法二:
<%
Function GetLen(Str)'检测包含汉字字串的长度,一个汉字的长度为2,英文字母的长度为1
Dim Strlen,i
GetLen = 0
Strlen=Len(Str)
IF IsNull(Str) Then Exit Function End If
For i = 1 To Strlen
If Asc(Mid (Str,i,1)) < 0 Then
GetLen = GetLen + 2
Else
GetLen = GetLen + 1
End If
Next
End Function
Function GetLeft(Str,L,Alter)'获取字符串的长度并根据要求裁切,按汉字的长度计算,1个汉字的长度=2个英文字母的长度,其中str表示呆截取的字符串变量或常量,L表示截取后保留的长度,Alter表示截取后补的字符,一般为"....".
Dim i,j
j=1
GetLeft = ""
If GetLen(Str)>2*L Then
For i=1 To L
If Asc(Mid(Str,j,1)) < 0 Or Asc(Mid(Str,j+1,2)) < 0 Then
GetLeft=GetLeft & Mid(Str,j,1)
j=j+1
Else
GetLeft=GetLeft & Mid(Str,j,2)
j=j+2
End If
Next
If Alter<>"" Then
GetLeft = GetLeft & Alter
End If
Else
GetLeft = Str
End If
End Function
%>
其中Function GetLen(Str)函数是计算字符串长度的,我的计算规则是一个汉字的长度为2,英文字母的长度为1.
Function GetLeft(Str,L,Alter) 函数是截断的函数.
譬如要截断字符串"代码测试",使之只保留"代码",然后后补以"....",那么只需要
<%
GetLeft("代码测试",2,"....")
%>
---------------------------------------------------------------------------------
方法三:(截取中英文字符串)
<%
function strLeft(str,num)
dim p_str,p_num
p_str = ""
p_num = 0
if trim(str) <> "" then
p_len = len(str)
for i = 1 to p_len
if asc(mid(str,i,1)) > 255 or asc(mid(str,i,1)) < 0 then
p_num = p_num + 2
else
p_num = p_num + 1
end if
if p_num > num then
p_str = Left(str,i-1)
exit for
else
p_str = str
end if
next
end if
strLeft=p_str
end function
%>
______________________________________________
截取月日:
<%= Month(now()) %>-<%= day(now()) %>
function date_md(tim)
dim m,d
if Month(tim)>9 then
m=Month(tim)
else
m="0"&Month(tim)
end if
if day(tim) >9 then
d=day(tim)
else
d="0"&day(tim)
end if
date_md=m&"-"&d
end function
分享到:
相关推荐
NULL 博文链接:https://bxwasp-net.iteye.com/blog/349594
ASP截取字符串(既:利用asp代码控制字符的显示)
常常我们在新闻发布系统中,会用到截取固定长度的字符串长度信息的情况,通常我们会想到使用left()或者mid()函数来解决问题,但是往往难以达到我们想要的效果,使用这个函数,使你读出的字符串更符合你的需要,当然...
asp.net截取字符串方法 使用字节精确计算 计算空格 直接复制使用 简单
ASP中英文混合字符串的截取 ASP中英文混合字符串的截取
asp.net c# String类添加按字节截取字符串的扩展方法
截取字符串 中文占两个英文占一个
asp截取文章中的第一个图片的函数 简单实用方便
ASP截取字段对不齐 大家分析一下 谢谢
Asp.net GridView标题列可拖动调整宽度效果实现,实现效果类似于Winform中的ListView控件拖动标题,必变列宽,但界面与listview控件不一样,需要自己改变gridivew样式,具体是根据js插件实现;
vb asp中根据符号截取字符串方法 split (",")
在将html代码输出到页面时,有时候会需要截断字符串保留指定长度的字符串,由于html中有些标签必须成对出现,所以在截取html时需要特别注意,不能因为截断问题把页面搞乱掉。
asp 字符串截取函数
Asp借助Flash实现头像截取功能,无组件上传使用MoLibUpload
如果标题过长,因为页面布局的限制,只能列表10个字符,这个函数会帮你实现的 代码如下: ‘截取字符串 strvalue(标题,字数) function strvalue(str,lennum) dim p_num dim i if strlen(str)<=lennum then ...
vs 2005开发。 通过域名生成图片,同时可以自行修改参数。切割需求部分为图片。 更改域名地址在default.aspx.cs下的函数...通过设定SHCut内参数,截取自己需求的部分来切割图片。 创作者:www.upinge.com
7.可以切换图片上传到服务器后截取图片并返回客户端 8.图片上传是无刷新上传的">1.请浏览CutImage_Advance.aspx 这个页面例子最完整 2.使用了JCrop插件 3.可以选择背景色 4.控制选择框为1:1的比例 5.设置了选择框的...
五种截取扩展名的方法,有样例,可以学习下。
两个截取字符串的实用方法(超过一定长度自动换行)