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条)

报告相同问题?

悬赏问题

  • ¥15 深度学习根据CNN网络模型,搭建BP模型并训练MNIST数据集
  • ¥15 lammps拉伸应力应变曲线分析
  • ¥15 C++ 头文件/宏冲突问题解决
  • ¥15 用comsol模拟大气湍流通过底部加热(温度不同)的腔体
  • ¥50 安卓adb backup备份子用户应用数据失败
  • ¥20 有人能用聚类分析帮我分析一下文本内容嘛
  • ¥15 请问Lammps做复合材料拉伸模拟,应力应变曲线问题
  • ¥30 python代码,帮调试,帮帮忙吧
  • ¥15 #MATLAB仿真#车辆换道路径规划
  • ¥15 java 操作 elasticsearch 8.1 实现 索引的重建