`
mujizi
  • 浏览: 139037 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

javascript 按像素截取字符串

阅读更多

由于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;
}

 

分享到:
评论
2 楼 hellohank 2012-04-23  
这个不能一概而论吧~
字符所占的像素,与字体、字符间宽度、中英文、全半角等样式相关,不是简单的一个字符占几个像素能说得清的……
1 楼 hyj1254 2009-10-09  
一个汉字占两个像素

貌似不止两个像素啊,字体稍微大点,10个像素都不够....两个字节差不多。。。

相关推荐

Global site tag (gtag.js) - Google Analytics