
因为汉字占两个字节js获得字符串的长度js获得字符串的长度,英文占一个字节.
方法1: 用两个字母替换汉字. 然后计算长度.

方法2: 直接判断中文,长度为+2.
使用的方法相似. 所有这些都是通过正则表达式用unicode编写的.
方法1:
var str = '2333哈哈';
var length=0;
str = str.replace(/[\u4e00-\u9fa5]/g,"aa");
alert(str);
alert(str.length);

方法1
[\ u4e00- \ u9fa5]: 匹配汉字
[^ \ x0000- \ x00ff]: 匹配双字节字符(包括汉字)

正则表达式显示/ [\ u4e00- \ u9fa5] / g的g必须是全局的,必须检查所有这些. 如果不是,则输出为(2333aa ha)
方法2:
function getLength(str){
var length=0;
var reg = /[\u4e00-\u9fa5]/;
for(var i=0;i<str.length;i++){
if(reg.test(str.charAt(i))){
length+=2;
}else{
length++;
}
}
return length;
}
var str = '2333哈哈哈';
console.log(getLength(str));
方法2中的功能

str.charAt(i): 在i处获取字符
展开:
charCodeAt(i): 在字符串的num位置获取字符的unicode编码
fromCharCode(i): 获取与unicode编码对应的字符
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-152509-1.html
也看看美国啥反应
男女之事不能瞎搞