ASP判断字符串长度的问题
<%iflen(NoticeList.Fields.Item("NoticeTitle").Value)>13thenresponse.Writeleft(NoticeL...
<%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结果正常! 展开
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结果正常! 展开
2个回答
展开全部
<%
'======================================
'取左边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
看这个有没有值,如果有值的话,应该是没有问题的语句
'======================================
'取左边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
看这个有没有值,如果有值的话,应该是没有问题的语句
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询