给定一个字符串,不管是英文还是中文,还是中英文混合的,只取前面的8个英文字母占位的宽度。 关于该程序的说明:当最后一个字为中文,并且前面已经取得7位时,就不应该再取这个字了。再 最后位置补空格; 否则的话,总共就会占9个英文字符的位置了。 本程序由net_lover(孟子E章)编写,您可以任意使用本程序,但要保持本注释。 有任何疑问请Email至: [email protected] 欢迎访问: http://lucky.myrice.com http://colorweb.go.163.com ======================================================================================= */ function get8Length(str) { var tmp = 0; var len = 0; var okLen = 0 for(var i=0;i<8;i++) { if(str.charCodeAt(i)>255) tmp += 2 else len += 1 okLen += 1 if(tmp + len == 8) { return (str.substring(0,okLen)); break; } if(tmp + len > 8) { return (str.substring(0,okLen - 1) + " "); break; } } } </Script> <Script language="vbscript" Runat="Server"> Function Strlength(Str) Temp_Str=Len(Str) For I=1 To Temp_Str Test_Str=(Mid(Str,I,1)) If Asc(Test_Str)>0 Then Strlength=Strlength+1 Else Strlength=Strlength+2 End If Next End Function </script> <% Dim strTest strTest = "我是孟子E章啊!!" response.write Strlength(StrTest) if Strlength(StrTest)>8 then Response.write get8Length(strTest) & "……<br/>" else Response.write get8Length(strTest) & "<br/>" end if strTest = "我是net" response.write Strlength(StrTest) if Strlength(StrTest)>8 then Response.write get8Length(strTest) & "……<br/>" else Response.write get8Length(strTest) & "<br/>" end if strTest = "I我a是m孟子E章啊!!" response.write Strlength(StrTest) if Strlength(StrTest)>8 then Response.write get8Length(strTest) & "……<br/>" else Response.write get8Length(strTest) & "<br/>" end if %>
/*
=======================================================================================
本程序段的功能:
给定一个字符串,不管是英文还是中文,还是中英文混合的,只取前面的8个英文字母占位的宽度。
关于该程序的说明:当最后一个字为中文,并且前面已经取得7位时,就不应该再取这个字了。再
最后位置补空格; 否则的话,总共就会占9个英文字符的位置了。
本程序由net_lover(孟子E章)编写,您可以任意使用本程序,但要保持本注释。
有任何疑问请Email至: [email protected]
欢迎访问:
http://lucky.myrice.com
http://colorweb.go.163.com
=======================================================================================
*/
function get8Length(str)
{
var tmp = 0;
var len = 0;
var okLen = 0
for(var i=0;i<8;i++)
{
if(str.charCodeAt(i)>255)
tmp += 2
else
len += 1
okLen += 1
if(tmp + len == 8)
{
return (str.substring(0,okLen));
break;
}
if(tmp + len > 8)
{
return (str.substring(0,okLen - 1) + " ");
break;
}
}
}
</Script>
<Script language="vbscript" Runat="Server">
Function Strlength(Str)
Temp_Str=Len(Str)
For I=1 To Temp_Str
Test_Str=(Mid(Str,I,1))
If Asc(Test_Str)>0 Then
Strlength=Strlength+1
Else
Strlength=Strlength+2
End If
Next
End Function
</script>
<%
Dim strTest
strTest = "我是孟子E章啊!!"
response.write Strlength(StrTest)
if Strlength(StrTest)>8 then
Response.write get8Length(strTest) & "……<br/>"
else
Response.write get8Length(strTest) & "<br/>"
end if
strTest = "我是net"
response.write Strlength(StrTest)
if Strlength(StrTest)>8 then
Response.write get8Length(strTest) & "……<br/>"
else
Response.write get8Length(strTest) & "<br/>"
end if
strTest = "I我a是m孟子E章啊!!"
response.write Strlength(StrTest)
if Strlength(StrTest)>8 then
Response.write get8Length(strTest) & "……<br/>"
else
Response.write get8Length(strTest) & "<br/>"
end if
%>