JavaScript入门教程

JavaScript简介
JavaScript语法基础
JavaScript流程控制
JavaScript函数
面向对象编程
JavaScript事件
JavaScript DOM
正则表达式
JavaScript BOM
AJAX

专题分析

浏览器兼容性
JS优化
Web前端开发规范
编辑器推荐
总结和笔记

学习助手

对象参考手册
ECMAScript分析
数据中心
QQ交流群

再说JS字符串长度,揭开length属性真面目

在JavaScript中,大部分情况下,统计字符串长度使用 stringObject.length。

但是严格的说,length 属性统计的是字符个数,而不是字符串长度(字节数)。

本页面使用 UTF-8 编码。UTF-8 是一种变长编码方式,每一个字符的字节长度是不一样的,汉字在UTF-8编码中占有三个字节,但是 length 属性统计的“长度”仍然为 1 。请看下面的演示:
输入“汉字”,长度为2;输入"1a",长度为2;输入“www.itxueyuan.org”,长度为17;输入“汉字123”,长度为5 ......

PHP中,使用 strlen() 函数来统计字符串长度,该长度是按字节统计的,而不是按字符统计。下面的演示,使用AJAX请求PHP程序统计字符串长度:
输入“汉字”,长度为6;输入"1a",长度为2;输入“www.itxueyuan.org”,长度为17;输入“汉字123”,长度为9 ......

相同的字符串,使用JS和PHP统计出的结果是不一样的。这说明,JS的length属性统计的是字符串的字符数,而不是字符串的字节数。