JS 判断字符串长度
1 //计算字符串长度(英文占1个字符,中文汉字占2个字符) 2 //方法一: 3 String.prototype.gblen = function() { 4 var len = 0; 5 for (var i = 0; i < this.length; i++) { 6 if (this.charCodeAt(i) > 127 || this.charCodeAt(i) == 94) { 7 len += 2; 8 } else { 9 len++; 10 } 11 } 12 return len; 13 } 14 15 //方法二: 16 function strlen(str) { 17 var len = 0; 18 for (var i = 0; i < str.length; i++) { 19 var c = str.charCodeAt(i); 20 //单字节加1 21 if ((c >= 0x0001 && c <= 0x007e) || (0xff60 <= c && c <= 0xff9f)) { 22 len++; 23 } else { 24 len += 2; 25 } 26 } 27 return len; 28 } 29 30 //方法三: 31 var jmz = {}; 32 jmz.GetLength = function(str) { 33 ///<summary>获得字符串实际长度,中文2,英文1</summary> 34 ///<param name="str">要获得长度的字符串</param> 35 var realLength = 0, 36 len = str.length, 37 charCode = -1; 38 for (var i = 0; i < len; i++) { 39 charCode = str.charCodeAt(i); 40 if (charCode >= 0 && charCode <= 128) realLength += 1; 41 else realLength += 2; 42 } 43 return realLength; 44 }; 45 46 //方法四: 47 var l = str.length; 48 var blen = 0; 49 for (i = 0; i < l; i++) { 50 if ((str.charCodeAt(i) & 0xff00) != 0) { 51 blen++; 52 } 53 blen++; 54 } 55 56 //方法五: 57 //把双字节的替换成两个单字节的然后再获得长度 58 getBLen = function(str) { 59 if (str == null) return 0; 60 if (typeof str != "string") { 61 str += ""; 62 } 63 return str.replace(/[^\x00-\xff]/g, "01").length; 64 }