转自;https://www.cnblogs.com/zhoujianying/p/8118385.html
方法一:
var
jmz = {};
jmz.GetLength =
function
(str) {
///<summary>获得字符串实际长度,中文2,英文1</summary>
///<param name="str">要获得长度的字符串</param>
var
realLength = 0, len = str.length, charCode = -1;
for
(
var
i = 0; i < len; i++) {
charCode = str.charCodeAt(i);
if
(charCode >= 0 && charCode <= 128)
realLength += 1;
else
realLength += 2;
}
return
realLength;
};
alert(jmz.GetLength('测试测试ceshiceshi));
方法二:
var
l = str.length;
var
blen = 0;
for
(i=0; i<l; i++) {
if
((str.charCodeAt(i) & 0xff00) != 0) {
blen ++;
}
blen ++;
}
方法三:
var
jmz = {};
jmz.GetLength =
function
(str) {
return
str.replace(/[u0391-uFFE5]/g,
"aa"
).length;
//先把中文替换成两个字节的英文,在计算长度
};
alert(jmz.GetLength(
'测试测试ceshiceshi'
));
分类: js