知道了以上原理以後,我們就可以算出一個字串的實際長度了,如果是GBK字元集遇到中文加2,如果是UTF8字元集遇到中文加3即可
執行個體(這個是我們常用的)
代碼如下 |
複製代碼 |
var jmz = {}; jmz.GetLength = function(str) { ///<summary>獲得字串實際長度,中文2,英文1</summary> ///<param name="str">要獲得長度的字串</param> var realLength = 0, len = str.length, charCode = -1; for (var i = 0; i < len; i++) { charCode = str.charCodeAt(i); if (charCode >= 0 && charCode <= 128) realLength += 1; else realLength += 2; } return realLength; }; |
執行代碼:
代碼如下 |
複製代碼 |
alert(jmz.GetLength('測試測試ceshiceshi)); |
執行個體
GBK長度計算函數:
代碼如下 |
複製代碼 |
// GBK字元集實際長度計算 function getStrLeng(str){ var realLength = 0; var len = str.length; var charCode = -1; for(var i = 0; i < len; i++){ charCode = str.charCodeAt(i); if (charCode >= 0 && charCode <= 128) { realLength += 1; }else{ // 如果是中文則長度加2 realLength += 2; } } return realLength; } |
UTF8長度計算函數:
代碼如下 |
複製代碼 |
// UTF8字元集實際長度計算 function getStrLeng(str){ var realLength = 0; var len = str.length; var charCode = -1; for(var i = 0; i < len; i++){ charCode = str.charCodeAt(i); if (charCode >= 0 && charCode <= 128) { realLength += 1; }else{ // 如果是中文則長度加3 realLength += 3; } } return realLength; } |