zhangrunzgz 2009-06-22 14:57
浏览 216
已采纳

javascript string length

以前知道用js求字符串长度的时候,中英文要单独处理。今天看书,看到这么一段:
[code="java"]var so = new String("hello world");
alert(so.length);// outputs "11"[/code]

上面输出11.[color=red]”注意:即使字符串包含双字节的字符,每个字符也只算一个字符。“[/color]

红色的不太懂什么意思。中文不是双字节的吗?
[b]问题补充:[/b]
不会吧。
[code="java"]var n = new String("aaa bbb ccc我");
alert(n.length);[/code]
这里得到的是13
[code="java"]var n = new String("aaa bbb ccc");
alert(n.length);[/code]
这个得到的是11啊

怎么回事????

[b]问题补充:[/b]
我是ie7,你呢?我用别人的ie6是12。
我晕了。
[b]问题补充:[/b]
不可能多空格,我把文件发给他们,直接打开,不做任何修改,结果就是12,我的这里是13,不过他那里的火狐也是13.

怎么该???
[b]问题补充:[/b]
谢谢你的耐心。

我知道为什么了。因为我是在文件里面测试的。而文件的(html)的编码设置的是UTF-8。我改成GBK就可以弹出12了。
ps。直接在地址栏alert也是12,不管什么浏览器。

这个问题是不是没办法解决啊?如果要把页面编码设置成UTF-8,在用到js的length的时候就只能单独处理了?

期待中............

  • 写回答

5条回答 默认 最新

  • wanghaolovezlq 2009-06-22 15:34
    关注

    不是因为版本问题导致这个bug吧

    不过ie下有bug也是蛮正常的,哈哈

    我测试就直接在地址栏上输入

    javascript:var n = new String("aaa bbb ccc我");alert(n.length);

    是12

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

悬赏问题

  • ¥20 idea运行测试代码报错问题
  • ¥15 网络监控:网络故障告警通知
  • ¥15 django项目运行报编码错误
  • ¥15 请问这个是什么意思?
  • ¥15 STM32驱动继电器
  • ¥15 Windows server update services
  • ¥15 关于#c语言#的问题:我现在在做一个墨水屏设计,2.9英寸的小屏怎么换4.2英寸大屏
  • ¥15 模糊pid与pid仿真结果几乎一样
  • ¥15 java的GUI的运用
  • ¥15 我想付费需要AKM公司DSP开发资料及相关开发。