由于JS对字符串长度的计算中汉字直接按一个长度计算,而显示的时候一个汉字占两个像素.
再加上HTML显示的长度是以像素为单位的,因此有必要按像素来计算一个字符串的长度.以
下代码提供了按像素计算字符串长度.
function getLengthStr(str,strLength) {
var tmp = 0;
var len = 0;
var okLen = 0
for(var i=0;i<strLength;i++)
{
if(str.charCodeAt(i)>255)
tmp += 2
else
len += 1
okLen += 1
if(tmp + len == strLength)
{
return (str.substring(0,okLen));
}
if(tmp + len > strLength)
{
return (str.substring(0,okLen - 1) + " ");
}
}
}
function getLength(str){
var len = 0;
for(var i=0;;i++)
{
if(!str.charCodeAt(i))
break;
if(str.charCodeAt(i)>255)
len += 2;
else
len +=1;
}
return len;
}