关于js获取字节长度的问题。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

javabugsmaker 2012-01-06 09:38:18


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

...全文
209 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
yangxiao_jiang 2012-01-06
  • 打赏
  • 举报
回复
判断 半角文字。
http://dev.21tx.com/2004/02/01/10209.html
javabugsmaker 2012-01-06
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 dntg007 的回复:]

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

那(iCode >= 0xff61 && iCode <= 0xff9f)这个是神马东东??我试过了不是判断半角全角啊。。。
dntg007 2012-01-06
  • 打赏
  • 举报
回复
简单点说,半脚的字符1个字节,全脚的两个。一个字节还是2个字节在字符code上是有一定区间的。判断字符code就是判断区间。
火狐和IE的问题,不知道你的数据来源。是不是同一台电脑?是不是画面输入的?
不同系统点击回车换行时,获得的字符可能是不一样的。有时候是\r\n 有时候是\n。所以一个两个字节都有可能。不同的浏览器输入是否有这个问题我不了解。

67,538

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧