js中判斷字符串的長度一般都是使用 length 屬性 ,但是 length 屬性獲取到的字符串長度是以字節為單位,如果我們想要利用 js 根據字節來獲取或判斷一串字符串的長度該如何做呢?下面給出幾個js判斷字符串字節長度的示例,大家參考一下。

js 按字符判斷一串字符串的長度

length:屬性可以讀取字符串的長度。長度以字符為單位,該屬性為只讀屬性。

示例代碼:

<script>
    var str = 'hello word!';
    console.log(str.length);
    var str2 = '你好,世界!你好,中國!';
    console.log(str2.length);
</script>

輸出結果:11  12

注:

1、使用 length 屬性獲取長度,每個字符,包括空格,標點符號都算是一個字符

2、length 屬性中,中文字符也默認為一個字符

js 按字節判斷一串字符串的長度

JavaScript 中支持的字節包括,單字節和雙字節兩種類型。一般來說英文以及英文符號占1個字符,中文漢字以及中文符號占2個字符

示例1:

charCodeAt():方法返回指定位置的字符的 Unicode 編碼。它的值為 0 - 65535 之間的整數。

<script>
    var str = '電影:我和我的祖國';
    var len = 0;
    for (var i = 0; i < str.length; i++) {
        if (str.charCodeAt(i) > 127 || str.charCodeAt(i) == 94) {
            len += 2;
        } else {
            len++;
        }
    }
    console.log(len);
</script>

輸出結果: 18

示例2:

一個漢字2個字符,一個中文符號兩個字符。

<script>
    var str = '你好,世界!';
    var len = 0;
    for (var i = 0; i < str.length; i++) {
        var c = str.charCodeAt(i);
        //單字節加1   
        if ((c >= 0x0001 && c <= 0x007e) || (0xff60 <= c && c <= 0xff9f)) {
            len++;
        } else {
            len += 2;
        }
    }   
    console.log(len);
</script>

輸出結果:12

示例3:

国产视频app把雙字節的字符替換成兩個單字節的字符,并獲取它的字符數

<script>
    var str = '飛鳥慕魚博客';
    var len = str.replace(/[^\x00-\xff]/g, "00").length; 
    console.log(len);
</script>

運行結果:12

示例4:

<script>
    var str = '中華人民共和國';
    var len = 0;
    for (var i = 0; i < str.length; i++) {
        var c = str.charAt(i);
        if (escape(c).length > 4) {
            len += 2;
        } else if (c != "\r") { 
            len++; 
        }
    }   
    console.log(len);
</script>

運行結果:14

示例5:

国产视频app可以使用正則表達式,來判斷字符是否為雙字節

<script>
    var str = '這里使用的正規表達式';
    var len = 0;
    for (var i = 0; i < str.length; i++) {
        var a = str.charAt(i);
        //使用的正則表達式
        if (a.match(/[^\x00-\xff]/ig) != null) {
            len += 2;
        } else {
            len += 1;
        }
    }   
    console.log(len);
</script>
//20