asp测字符串长度及截取定长字符串汉字的处理

来源:asp之家 时间:2007-10-12 13:14:00 

asp编程中我们经常要处理字符串,比如一个新闻列表,在我们编写asp程序的时候就要考虑到新闻标题的长度不确定性,因为有的文章标题可能很长,可能20或30个字符;而有的标题可能又很短。还有的新闻标题是英文字母或数字,有的都是汉字,或者英文字母和汉字混合。可问题是英文字母或数字的长度和汉字的长度不一致,一个汉字相当于2个字母的长度。这样如果我们对标题不加限制的话,很可能影响到网页的布局,这样页面美观性就差了,当然如果美工考虑周到的话使用CSS可以很方便的处理这个问题。

现在我们讲的是asp程序上如何处理这个问题,我们知道asp中的left函数可以截取一个字符串的左边算起的第几个字符,如一个字符串是:asp之家,请看下面的代码:


str="asp之家"
str=left(str,5)
response.write str


如果运行上面的asp代码则屏幕上显示的是:中国asp

这里left后面的数字为5就截取了5个字符,一个汉字算一个字符。当某字符串都是字母时很显然截取的长度与都是汉字截取的长度差很多。为了解决这个问题,我们就需要来处理汉字,当遇到的字符是汉字的时候,就算两个长度单位。这样就很好的解决了显示长度不同的问题了.

1.测字符串长度, 汉字算两个长度单位

'代码作者不详
Function CheckStringLength(txt)
txt=trim(txt)
x = len(txt)
y = 0
for ii = 1 to x
if asc(mid(txt,ii,1)) < 0 or asc(mid(txt,ii,1)) >255 then ’如果是汉字
y = y + 2
else
y = y + 1
end if
next
CheckStringLength = y
End Function

运行下面的代码:


response.write CheckStringLength("asp之家")


屏幕将显示:11

2.截取指定长度的字符串(包括汉字)

'代码作者不详
function InterceptString(txt,length)
txt=trim(txt)
x = len(txt)
y = 0
if x >= 1 then
for ii = 1 to x
if asc(mid(txt,ii,1)) < 0 or asc(mid(txt,ii,1)) >255 then ’如果是汉字
y = y + 2
else
y = y + 1
end if
if y >= length then 
txt = left(trim(txt),ii) ’字符串限长
exit for 
end if
next
InterceptString = txt
else
InterceptString = ""
end if
End Function 


运行下面的代码:


response.write InterceptString("asp之家",5)


屏幕将显示:中国a

 

标签:字符串,长度,检测
0
投稿

猜你喜欢

  • 怎样在GoDaddy-Linux主机上使用JSP连接到MySQL数据库

    2010-04-21 12:38:00
  • 垂直栅格与渐进式行距(上)

    2009-04-01 18:30:00
  • 该死的IE,走好

    2009-01-15 12:26:00
  • 解析:轻松了解 MySQL中损坏的MyISAM表

    2009-02-23 17:30:00
  • 用FrontPage200八步快速建站

    2008-09-17 10:52:00
  • 如何正确编写高质量高性能的MySQL语法

    2008-11-27 15:43:00
  • 成功的用户界面的八个特性[译]

    2009-04-20 20:36:00
  • 用好FrontPage2003的九大功能

    2008-02-21 14:29:00
  • 形象化的reflow

    2008-06-08 13:33:00
  • oracle 性能优化建议小结

    2010-04-22 16:32:00
  • 正确认识MySQL对服务器端光标的限制

    2008-12-03 15:52:00
  • 利用ASP+JMAIL进行邮件群发的新思路

    2008-03-20 13:30:00
  • 保护MySQL数据库中重要数据的注意事项

    2009-01-19 11:55:00
  • PL/SQL number型数据

    2009-02-26 10:59:00
  • 你应当了解的5个CSS3新技术

    2009-02-11 13:01:00
  • 制作Dreamweaver活动菜单条

    2008-10-03 20:59:00
  • MS IIS server Frontpage Ext Server漏洞

    2008-05-04 09:54:00
  • CSS结合js实现动态更换皮肤

    2007-07-14 10:01:00
  • 个人经验总结:完全卸载MySQL数据库5.0

    2009-01-04 13:07:00
  • css闭合浮动元素

    2008-05-09 19:41:00
  • asp之家 网络编程 m.aspxhome.com