关于文章标题过长需要省略的问题

oowingoo 2003-09-12 10:21:59
问题:

现在请教一下大家。
如果可以做到
“一二三四五六七八九十” 与 “abc一二三45678”
这两段字符串算出来的长度是不相等呢?




说明:

一篇文章的标题如果过长的时候,在列表页面里显示,需要省略一下。。

我试着用len()来判断标题的长度,结果,如果标题里全是中文字符的话,判断的比较准确,每个字用len()算出来都是1,但如果标题里含有英文或数字的话,算出来的结果跟实际占位的长度不一致了,因为英文和数字他也都算成1,事实上英文和数字哪里有中文汉字占的位置长。所以用len()算的话,则“abcdefgh”和“一二三四五六七八”这两段字符长度一样。

如果我用lenb()来计算的话,他虽然把汉字当成了2,但同时也把英文也当成了2,结果跟上面是一样的。。
...全文
80 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
oowingoo 2003-09-12
  • 打赏
  • 举报
回复
likecola(胖石头) 的思路很好,同时也感谢vivisogood(新人类)给我提示。。
还感谢各位跟帖的。。

问题已经解决了,现在结帖
vivisogood 2003-09-12
  • 打赏
  • 举报
回复
随手写的.具体情况可以分析一下!
lang11zi 2003-09-12
  • 打赏
  • 举报
回复
还得做判断
likecola 2003-09-12
  • 打赏
  • 举报
回复
自己来写个函数,对每个字一个一个来做判断,一次读去字符串中的一个字,看看是不是a-z,A-Z,0-9还有符号,如果是就加1,如果不是就加2,这样应该可以。我想你标题也不会太长的,所以性能问题也没这么重要吧。
vivisogood 2003-09-12
  • 打赏
  • 举报
回复
for i=1 to len(str)
a=mid(str,i,1)
if ((asc(a)<asc(0) or asc(a)>asc(9)) and (asc(a)<asc(a) or asc(a)>asc(z))) then
位数减去0.5
end if
next
tigerwen01 2003-09-12
  • 打赏
  • 举报
回复
“一二三四五六七八九十” 与 “abc一二三45678”两串字符串能相等吗?
oowingoo 2003-09-12
  • 打赏
  • 举报
回复
对呀。。所以我的问题就是

如果可以做到
“一二三四五六七八九十” 与 “abc一二三45678”
这两段字符串算出来的长度是不相等呢?
tigerwen01 2003-09-12
  • 打赏
  • 举报
回复
如果英文、数字跟汉字混合呢?

28,391

社区成员

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

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