需求:需要获取输入框输入的字节数。
解决方法:
方法一:通过charCodeAt()获得的unicode编码来判断
代码如下:
function getLen(str){
let len = 0;
for(let i=0;i<str.length;i++){
if(str.charCodeAt(i) < 0 || str.charCodeAt(i) > 255){
len +=2;
}else{
len +=1;
}
}
return len;
}
方法二:通过replace
把汉字替换成 "**"
再获取length
代码如下:
function getLen(str){
const chinese = /[^\x00-\xff]/g;
let newVal = str.replace(chinese,"**");
return newVal.length;
}
方法三:类似于方法一,区别在于使用match
方法来判断
代码如下:
function getLen(str){
let len = 0;
const chinese = /[^\x00-\xff]/ig;
for(let i=0;i<str.length;i++){
if(str.charAt(i).match(chinese)){
len +=2;
}else{
len +=1;
}
}
return len;
}