大家都知道,獲取字串的長度可用length來獲取,
那麼獲取這段字串的位元組數呢?
----
英文本母肯定lenght和位元組數都一樣:都是1
而中文lenght=1,位元組數=2
因此,需要作的就是把中文字元的位元組數計算出來。
----
方法一:
alert('a
'.replace(
/[^\u0000-\u00ff]/g,
"aaa
").length);
//原理:把中文字元替換成2個英文本母,那麼位元組數就是2,我示例中改成替換成3個英文本母了。因此彈出的位元組數是3,如果要正確的,當然是替換成2個字母了
//\u0000這個表示的是unicode編碼
方法二:
varstr='
我我我'
;varbytescount;
for(
vari =0
; i
<
str.length; i++)
else
}alert(bytescount);
//結果是6
//原理也很簡單,用正則判斷是不是中文,如果是的話,位元組數就加1。
*****
匹配中文字元的正規表示式: [\u4e00-\u9fa5]
乙個有關的效果:
js獲取字串的位元組數
js是使用unicode編碼的。而unicode的實現有n種,其中用的最多的就是utf 8和utf 16。utf 8 8 bit unicode transformation format 是一種針對unicode的可變長度字元編碼,可以表示unicode標準中的任何字元,且其編碼中的第乙個位元組仍...
c 獲取字串的位元組數的方法
將字串轉換為ascii編碼陣列,只要是中文位元組碼就是ascii編碼63即 所以可以由此來進行判斷 複製 如下 class stringop return strlen class testmain 將字串以unicode的編碼轉換為位元組陣列,判斷每個字元的第二個位元組是否大於0,來計算字串的位元...
按位元組數擷取字串
1.字串設定長度,長度限制 nsstring stringwithhtml nsstring str length cgfloat length 如果有寬度限制的話,建議用 if str.length length 缺點是字母或數字或中文與數字字母混合時計算有誤,還會執行下面方法,但比較保險 獲取字...