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 }

 

posted @ 2020-06-11 11:34  xlsdg  阅读(503)  评论(0)    收藏  举报