服务器端已经把数据库创建成一个二维数组,这是什么意思,实在不理解?问题处在 var title = String('<%=array[n][3]%>');顺便问一句,在侦测字符串长度时,对于汉字占两个字符位,数字和字母占一个字符位.请教如何区分两者,从而达到视觉上的同等长度.要是用户输入, 你好吗 那最后的汉字,是不是要分成两半.我建议不用管视觉上的长短,就判断String.length就行了.
<% function getmystr(str,count) dim tcount,str1 str1="" tcount=0 for i=1 to len(str) str1=str1+mid(str,i,1) if asc(mid(str,i,1))>=32 and asc(mid(str,i,1))<127 then tcount=tcount+1 else tcount=tcount+2 end if if tcount=count then exit for elseif tcount>count then str1=left(str1,len(str1)-1) exit for end if 'response.write mid(str,i,1) & "|" & tcount & "|" next getmystr=str1 end function str="abcde中文我1234" response.write getmystr(str,10) '10个字符位置 %>
var title = String('<%=array[n][3]%>');顺便问一句,在侦测字符串长度时,对于汉字占两个字符位,数字和字母占一个字符位.请教如何区分两者,从而达到视觉上的同等长度.要是用户输入, 你好吗
那最后的汉字,是不是要分成两半.我建议不用管视觉上的长短,就判断String.length就行了.
llhdf(塞外浪子)
非常感谢你们的帮助! llhdf(塞外浪子),我的意思是说,我对字符串进行取舍操作之前,先对其取舍区域内的字符进行判断,再进行取舍!
比方说,我只要求10个字符位的内容显示在页面上.
那么用字母或数字的话,str.length>10
而用汉字的话,str.length>5
如果字符混杂的话....呵呵,我就是不知道该怎么去判别啊!
因为在页面排版中如果出现下面的情况,就不太好看了:
123456789......
一二三四五六七八九......
一2三4五6七8九......
if (title.replace(/[\u4E00-\u9FA5]/,"**").length>10);
......
不行啊!还是老样子! 请教有没有什么方法可以逐字判断其是汉字、字母还是数字.
我的想法如下:
从字符串中从头开始取一个合理区间的字符段.
设置一个变量,如count = 10;
然后依次按个抽取字符.
抽取一个汉字,则count-2;
抽取一个字母或数字,则count-1;
一直到count == 0;循环结束,这个时候,截取出来的字符长度应该都差不太多.
有那位朋友能把这个想法换成代码?
或者有更简单的方法?
请不吝指教!
function getmystr(str,count)
dim tcount,str1
str1=""
tcount=0
for i=1 to len(str)
str1=str1+mid(str,i,1)
if asc(mid(str,i,1))>=32 and asc(mid(str,i,1))<127 then
tcount=tcount+1
else
tcount=tcount+2
end if if tcount=count then
exit for
elseif tcount>count then
str1=left(str1,len(str1)-1)
exit for
end if
'response.write mid(str,i,1) & "|" & tcount & "|"
next
getmystr=str1
end function
str="abcde中文我1234"
response.write getmystr(str,10) '10个字符位置
%>