js獲取一個(gè)字符串的字節(jié)長(zhǎng)度
因?yàn)橹形淖终純蓚€(gè)字節(jié),英文占一個(gè)字節(jié)调限。
方法1:把中文字替換成兩個(gè)字母。然后計(jì)算長(zhǎng)度误澳。
方法2:直接判斷中文耻矮,長(zhǎng)度+2。
運(yùn)用的方法大同小異忆谓。都是通過(guò)正則表達(dá)式裆装,寫(xiě)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]:匹配雙字節(jié)字符(包括中文字)
正則表達(dá)示 /[\u4e00-\u9fa5]/g
的 g
必須要倡缠,global哨免,全部都要檢查的意思。沒(méi)有的話輸出的是(2333aa哈)
方法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中的函數(shù)
str.charAt(i) : 獲取i位置的字符
擴(kuò)展:
charCodeAt(i) : 獲取字符串的num位置的字符的unicode編碼
fromCharCode(i) : 獲取unicode編碼對(duì)應(yīng)的字符