ASP判断字符串长度的问题

来源:百度知道 编辑:UC知道 时间:2024/06/24 14:38:43
<%if len(NoticeList.Fields.Item("NoticeTitle").Value)>13
then
response.Write left(NoticeList.Fields.Item("NoticeTitle").Value,13)&"..."
else
response.Write NoticeList.Fields.Item("NoticeTitle").Value
end if %>
说明:NoticeList为记录集名称
NoticeTitle对应的标题内容
目前使用的这个代码出现了以下问题:
1、无法正确判断字符串的长度,数字、英文、汉字都被判断成一个单位字符,也就是说判断下来都是13个数字、13个字母或者13个汉字
2、实际输出页面上显示的,只有三个逗点而已,数据库有3条记录,重复区域后也就是三行逗点,说明数据已经获取成功了,但是没法正确判断和显示出来,请高人指教。
在线等……
输出 NoticeList.Fields.Item("NoticeTitle").Value结果正常!

<%
'======================================
'取左边N个字符,1个中文=2个英文=2个字符
'参数:字符串,左边位数,超出部分截断的替换字符串(如:...)
'======================================
function getleftstr(str,n,nexttext)
if isnull(str)=false and str<>"" then
dim f_str,f_i,f_k,f_a
f_k=0
for f_i=1 to len(str)
f_a=mid(str,f_i,1)
dim re : set re=New RegExp '建立正则表达式
re.Pattern="[^\x00-\xff]" '设置模式,即建立正则式规则
re.Global=False '设置全局可用性
re.Ignorecase=True '设置是否区分字符大小写
re.MultiLine=False '设置多行标记可用性
f_k=f_k+len(re.replace(f_a,"$2")) '执行搜索测试
if f_k<=n then
f_str=f_str & f_a
else
f_str=f_str & nexttext
exit for
end if
next
getleftstr=f_str
end if
end function
%>

以上是我自己编写并一直用的自定义函数
至于你另一个问题,你直接输出:NoticeList.Fields.Item("NoticeTitle").Value