文章·资料 电脑软件 手机软件 网站源码




    本 站 搜 索
   推 荐 文 章        More...
华硕易电脑(ASUS Eee PC 10..
先来段开场白:为了外出携带方便..
Acronis True Image 使用..
  一款可以在Windows下使用..
Norton Ghost 使用详解
一、分区备份   使用Ghost..
    文 章 阅 读 排 行
“啊估文章软件站”网站系..
一、调试测试网站系统时,如何..
关于 Firefox 在中国持续..
亲爱的 Firefox 用户及 Firefox..
向日葵远程控制软件,设置..
向日葵远程控制软件有个人版和..
夸克网盘新用户注册如何获..
夸克网盘,新用户注册如何获得1..
FileZilla Server 设置参考
FileZilla Server 启动界面 ..
PakePlus 构建 APP 需要 Gi..
PakePlus 是一个基于 Rust Taur..
电脑显示器使用 HDMI 数据..
如果电脑显示器使用 HDMI 数据..
ASP/JavaScript:不刷新页..
function GuReturnElement(..
分享几个免费申请 SSL 证..
DigiCert 原 Symantec(赛门铁..
关闭微信的个性化推荐广告
有网友说到,微信的初衷是拉近..
 文 章 信 息
ASP 中英文混排字符串的截取函数
评论()〗〖留言〗〖收藏
〖文章分类:电脑·手机·网络 / 网站设计·开发·优化〗〖阅读选项
  以前遇到过类似的问题,但一直没有仔细剖析,昨天刚巧有朋友问到,就好好做了一下,先从网上找了相关函数,如下:

'===============================================================
 'Strsub
 '函数功能:获取字符串长度(汉字长度为2).
 '参数意义:str ---- 字符串
 '===============================================================
 Function strlen(str)
  Dim p_len,xx
  p_len=0
  strlen=0
  If Trim(str)<>"" Then
   p_len=len(trim(str))
  
   For xx=1 To p_len
    If asc(mid(str,xx,1))<0 Then
     strlen=int(strlen) + 2
    Else
     strlen=int(strlen) + 1
    End If
   Next
  End If
 End Function
 '===============================================================
 'Strsub
 '函数功能:字符串截取.
 '参数意义:str ---- 要截取的字符串. lennum---截取的字符数. s---结尾字符
 '===============================================================
 Function Strsub(str,lennum,s)
  If Not IsNull(str) Then
   Dim p_num,x
   Dim i
   If strlen(str)<=lennum Then
    Strsub=str
   Else
    p_num=0
    x=0
    Do While Not p_num > lennum-2
     x=x+1
     If Asc(Mid(str,x,1))<0 Then
      p_num=Int(p_num) + 2
     Else
      p_num=Int(p_num) + 1
     End If
     Strsub=Left(Trim(str),x)&s
    Loop
   End If
  Else
   Strsub="Null"
  End If
 End Function
测试过程中发现如下问题:
1有截取的时候函数调用使用方法不清晰 ,指定长度同时指定后面显示的省略符号,使得长度控制不准确.
2在部分中英混排情况下截取不准,不能得到可显示部分的最后一个英文字符.
昨天研究过这些后有事情先闪,回家有心情看孩子的时候居然手写了两个函数,这张纸应该照下来,不过今天没带220,下午拍完补上,好久没有这么认真的想事情了.写的函数如下:
'===============================================================
'自定义函数名:mylen
'函数功能:获取字符串长度(汉字长度为2).
'参数意义:str ---- 字符串
'===============================================================
function mylen(str)
 mylen=0
 for x=1 to len(str)
   mylen=mylen+1
   if asc(mid(str,x,1))<0 then mylen=mylen+1
 next
end function
'===============================================================
'自定义函数名:myleftstr
'函数功能:字符串截取.(处理汉字与英文数字混排)
'参数意义:str ---- 要截取的字符串. mylenth---截取的字符数.
'提示:这里自动将超长的后三个字符处理为...
'===============================================================
function myleftstr(str,mylength)
 myleftstr=str
 if mylen(str)>mylength then
  mylength=mylength-3
  for x=int(mylength/2) to mylength+1
   if mylen(left(str,x))>mylength then getlength=x-1:exit for
  next
  myleftstr=left(str,getlength)&"..."
 end if
end function
做了几组数据测试进行比较,
设置为可显示10个字符的限制,对于函数使用Strsub(str,7,"...")方式调用,也许是没有细看函数的原因,可能还会有更细致的设置方法达到更好的效果.
测试结果:

测试结果总结:
对于全中文的字符串,如果超长可显示部分是奇数个的话,后面的半个无法显示这是肯定的,显示了也是不正常,经过处理,允许显示范围内的最后一个英文字符可以显示,还算正常。

文章作者:未知  更新日期:2009-07-08
〖文章浏览:〗〖发送文章〗〖打印文章
相关文章 ·用ASP 按修改时间读取文件夹中文件并排序2008-03-07
·ASP 与 ASP.NET 的区别2006-11-24
·ASP 中 SQL 防注入程序代码2009-09-10
·ASP 网页编码 GB2312 转换为 UTF-82020-06-01
相关软件 ·Persits ASPJpeg V2.9.0.5(ASP 图片处理组件)2025-04-11
·Ajiu ASPWebServer V2.2(ASP Web 服务器)2011-11-17
·秋天 ASP Encrypt 加密 V1.0(ASP 代码加密)2021-10-22
·Halcyon Instant ASP V2.1(iASP,Linux 系统运行 ASP 网站)2019-08-29
·ASP Decoder(ASP 代码加密/解密) V1.012005-06-29
·ASP 参考手册2010-11-10
〖文章阅读说明〗
·本站大部分文章转载于网络,如有侵权请留言告知,本站即做删除处理。
·本站法律法规类文章转载自[中国政府网(www.org.cn)],相关法律法规如有修订,请浏览[中国政府网]网站。
·本站转载的文章,不为其有效性,实效性,安全性,可用性等做保证。
·如果有什么问题,或者意见建议,请联系[网站管理员]。