function getLength(str) 
{
var length = 0;
for(i = 0;i < str.length; i++) 
{
var iCode = str.charCodeAt(i);
if((iCode >= 0 && iCode <= 255) || (iCode >= 0xff61 && iCode <= 0xff9f)) 
{
length += 1;

else
{
length += 2;
}
}
return length;

iCode >= 0xff61 && iCode <= 0xff9f)是用来判断什么的????
还有,用火狐的话,这段代码获取回车是1个字节。在IE下获取回车是2个字节,只能加上以下代码判断。除此之外还有没有其他办法??if(navigator.userAgent.toLowerCase().indexOf("ie") == -1 && iCode == 10)
{
length += 1;
}

解决方案 »

  1.   

    简单点说,半脚的字符1个字节,全脚的两个。一个字节还是2个字节在字符code上是有一定区间的。判断字符code就是判断区间。
    火狐和IE的问题,不知道你的数据来源。是不是同一台电脑?是不是画面输入的?
    不同系统点击回车换行时,获得的字符可能是不一样的。有时候是\r\n 有时候是\n。所以一个两个字节都有可能。不同的浏览器输入是否有这个问题我不了解。
      

  2.   


    那(iCode >= 0xff61 && iCode <= 0xff9f)这个是神马东东??我试过了不是判断半角全角啊
      

  3.   

    判断 半角文字。
    http://dev.21tx.com/2004/02/01/10209.html