以前知道用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的时候就只能单独处理了?
期待中............
不是因为版本问题导致这个bug吧
不过ie下有bug也是蛮正常的,哈哈
我测试就直接在地址栏上输入
javascript:var n = new String("aaa bbb ccc我");alert(n.length);
是12
javascript是这么计算里;一个字母和一个汉字是一样里;
中文是双字节的啊,
也就是说在字符串取长的时候,中英文字符都算一个字符
不可能吧,
var n = new String("aaa bbb ccc我");
alert(n.length);
我这得到的都是12
我ie6,7,firefox都是12,没问题的
你自己不小心多搞了个空格吧