一个英文字符和汉字、日文的字节数是不同的。如果直接使用Javascript的Len函数的话,一个英文字母和汉字的长度都会被认为是1。如果这些数据需要保存在数据库中的话,长度不能有效控制就会带来一些隐患。简单的两个方法来实现长度计算。
str = escape("汉字abc,,");
len = 0;
for(i=0;i<str.length;i++,len++) {
if(str.charAt(i)=="%") {
if(str.charAt(++i)=="u") {
i += 3;
len++;
}
i++;
}
}
alert(len);
str = "汉字abc,,";
len = 0;
for(i=0;i<str.length;i++){
iCode = str.charCodeAt(i);
if((iCode>=0 && iCode<=255)||(iCode>=0xff61 && iCode<=0xff9f)){
len += 1;
}else{
len += 2;
}
}
alert(len);
本文提供两种JavaScript方法来准确计算包含英文、汉字及日文字符的字符串长度。第一种方法通过转义序列确定每个字符的字节数,第二种方法利用charCodeAt获取Unicode编码并判断长度。
1433

被折叠的 条评论
为什么被折叠?



