网络编程
位置:首页>> 网络编程>> Asp编程>> ASP截取中英文字符串固定长度

ASP截取中英文字符串固定长度

  发布时间:2009-08-19 17:12:00 

标签:asp,英文,字符串

纯粹的截取字符串其实比较简单,用一个Left就搞定,但一个是全英文标题,一个是全中文标题,或中文混合排在一起,长短不一就很明显了,要考虑到中文跟英文的区别.

  本代码截取长度的计算方式:一个汉字长度计算为1个,一个英文字母或数字或符号的长度计算为0.5个.所以一个汉字占两个英文字母或数字或符号.如 "截取字符串"的长度="abcdefghij"的长度. 代码比较简单,呵呵....希望适合你用....

GetString.asp
<%
Function GetStringLength(txt,length)
dim i
i=1
y=0
txt=trim(txt)
for i=1 to len(txt)
j=mid(txt,i,1)
if asc(j)>=0 and asc(j)《=127 then '汉字外的其他符号,如:!@#,数字,大小写英文字母
y=y+0.5
else '汉字
y=y+1
end if
if -int(-y) >= length then '截取长度
txt = left(txt,i)
exit for
end if
next
response.write txt
End Function
%>

调用方法:
<%call GetStringLength(txt,length)%>
说明:txt为需截取的字符串,length为截取长度,一个汉字的长度按1个计算,一个英文或数字符号的长度按0.5个计算

把英文字母,数字,符号,汉字分开计算的长度截取:
GetString2.asp
<%
Function GetStringLength(txt,length)
dim i
i=1
y=0
txt=trim(txt)
for i=1 to len(txt)
j=mid(txt,i,1)
if asc(j)>=0 and asc(j)《=32 then '控制字符或通讯专用字符
y=y
elseif asc(j)>=33 and asc(j)<=47 then '标点符号 ! " # $ % & ' ( ) * + , - . /
y=y+0.5
elseif asc(j)>=48 and asc(j)<=57 then '数字 0123456789
y=y+0.5
num=num+1
elseif asc(j)>=58 and asc(j)<=64 then '标点符号 : ; 《 = > ? @
y=y+0.5
elseif asc(j)>=65 and asc(j)<=90 then '大写英文字母 ABCDEFGHIJKLMNOPQRSTUVWXYZ
y=y+0.5
beng=beng+1
elseif asc(j)>=91 and asc(j)<=96 then '标点符号 [ \ ] ^ _ `
y=y+0.5
elseif asc(j)>=97 and asc(j)<=122 then '小写英文字母 abcdefghijklmcopqrstuvwxyz
y=y+0.5
seng=seng+1
elseif asc(j)>=123 and asc(j)<=126 then '标点符号 { } ~
y=y+0.5
else
y=y+1
chn=chn+1
end if
if -int(-y) >= length then
txt = left(txt,i)
exit for
end if
next
End Function
%>

调用方法同上.

0
投稿

猜你喜欢

  • 请问如何在ASP中使用ADO调用Oracle的存储过程?我们可以在下面的代码里使用微软Oracle 的OLE DB Provider ,包括
  • 1、XML 是什么?XML仅仅是一种数据存放格式,这种格式是一种文本(虽然XML规范中也提供了存放二进制数据的解决方案)。事实上有很多文本格
  • 调度和锁定在很多客户一起查询数据表时,如果使客户能最快地查询到数据就是调度和锁定做的工作了。在MySQL中,我们把select操作叫做读,把
  • 对于 link 元素 和 style 元素 我相信大家都比较了解,但对于他们的出现位置可能有误解。在 淘宝 的所有频道中出现这样一个问题:频
  • Google Chrome,又喜欢逛豆瓣,Google Chrome支持User Scripts了,但是我写的那几个插件在Chrome下又跑
  • 一、介绍QQ空间相册的个性化利器,能对照片进行效果的优化、文字编辑等等。从设计上使用了创新的手法,尽量减少用户的思考。其中,通过界面的特殊表
  • 本文介绍使用aspjpeg组件实现图片的半透明描边的效果,描边效果演示:参数说明'big 原图路径(相对)'small 生成
  • 通常我们在制作上图的时候,会分别给四个div加上不同的css属性,来实现中间间隔。但我们更希望的是不需要对html标签做标识,直接能通过cs
  • <%'解析一个xml文件的公用函数集合dim document'装载一个xml文档,函数名Loaddocument(文
  • 在我们武汉的一个项目中,用户提供的数据库服务器有16G左右的内存,但我们只能使用8G多的内存,为了提高内存的得用率,特意参考了一些资料,得出
  • 在正文前,先简短介绍自己。我任职于广州的某个网站服务公司的系统开发员,主要任务是以.Net编写各种web系统,例如CMS.EIP。大家都知道
  • ASP中查询数据库记录写入XML文件示例,把下面代码保存为Asp_XML.asp运行即可:    &
  • 在IE 浏览器中使用 jquery的fadeIn() 效果 英文字符字体加粗的解决方法分享。<div id='tes
  • 昨时要导一些数据,从网上搜到的。字段多时insert 语句生成的不完整了,还没有找到原因..有个缺点……就是标识种子的列 也insert了c
  • 在开发过程中,有时遇到由于缓存问题导致页面不能及时更新,有时页面引入了不必需的样式脚本文件,有时由于文件太多,字节过大导致页面的性能缓慢,为
  • 本节列出了可以运行MySQL的操作系统。我们使用GNU Autoconf,因此将MySQL移植到所有使用Posix线程和C++编译器的现代系
  • 严格来说,Having并不需要一个子表,但没有子表的Having并没有实际意义。如果你只需要一个表,那么你可以用Where子句达到一切目的。
  • 1、卓越亚马逊的首页轮换图片,每刷新一次,都是随机不同的顺序显示,这样的设计解决了对于较多图片轮换而靠后的图片信息很少被看到的问题,这点对于
  • 本教程中将详细阐述传统的图形设计元素是如何应用在现代(2.0时代)的页面设计中的,然后我将解释为什么它们能流行开来,以及如何、何时、在哪里使
  • PHP是一种面向对象的编程语言,它允许开发者使用面向对象的编程技术来构建复杂的应用程序。下面是一些关于PHP面向对象编程的讲解:类与对象类是
手机版 网络编程 asp之家 www.aspxhome.com