欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

用JavaScript計算在UTF-8下存儲字符串占用字節(jié)數(shù)

 更新時間:2013年08月08日 16:01:23   作者:  
想辦法在JavaScript中判斷在UTF-8下存儲的String的字節(jié)數(shù),在網(wǎng)上找到很多關于Unicode介紹的文檔,最重要的是字符編碼數(shù)值對應的存儲長度
最近和JavaScript糾纏上了。

遇到這么一個問題,數(shù)據(jù)庫的字符集為UTF-8的,要在頁面上使用JavaScript驗證輸入的文本用UTF-8存儲時占用字節(jié)長度。JavaScript的String對象有l(wèi)ength屬性,但是這個計算的是字符數(shù),不是字節(jié)數(shù)(問題總是翻來覆去的,記得當年玩Delphi的時候,還得寫程序計算字符串的字符數(shù),因為Delphi中String的length是字節(jié)數(shù)...)。偷懶一點的辦法是將驗證代碼中最大長度設置為數(shù)據(jù)庫中對應字段的長度的1/3,但是這樣準確來說有點不合適。

所以想辦法在JavaScript中判斷在UTF-8下存儲的String的字節(jié)數(shù),在網(wǎng)上找到很多關于Unicode介紹的文檔,最重要的是字符編碼數(shù)值對應的存儲長度:

UCS-2編碼(16進制) UTF-8 字節(jié)流(二進制)
0000 - 007F 0xxxxxxx (1字節(jié))
0080 - 07FF 110xxxxx 10xxxxxx (2字節(jié))
0800 - FFFF 1110xxxx 10xxxxxx 10xxxxxx (3字節(jié))

于是代碼如下:
[
復制代碼 代碼如下:

function mbStringLength(s) {
var totalLength = 0;
var i;
var charCode;
for (i = 0; i < s.length; i++) {
charCode = s.charCodeAt(i);
if (charCode < 0x007f) {
totalLength = totalLength + 1;
} else if ((0x0080 <= charCode) && (charCode <= 0x07ff)) {
totalLength += 2;
} else if ((0x0800 <= charCode) && (charCode <= 0xffff)) {
totalLength += 3;
}
}
//alert(totalLength);
return totalLength;
}

實際上,0x0080到0x07ff之間的字符很少會在實際用戶輸入中用到。

相關文章

  • JavaScript腳本判斷蜘蛛來源的方法

    JavaScript腳本判斷蜘蛛來源的方法

    本篇文章給大家介紹js判斷蜘蛛來源的方法,此方法的腳本是寫在body的onload里面的,當頁面進行加載時就進行判斷,感興趣的朋友一起看看吧
    2015-09-09
  • JS批量修改PS中圖層名稱的方法

    JS批量修改PS中圖層名稱的方法

    批量修改PS中圖層名稱的方法有很多,在本文為大家介紹下使用js是如何實現(xiàn)的
    2014-01-01
  • JS實現(xiàn)中文漢字按拼音排序的方法

    JS實現(xiàn)中文漢字按拼音排序的方法

    這篇文章主要介紹了JS實現(xiàn)中文漢字按拼音排序的方法,涉及javascript針對中文字符串的轉(zhuǎn)換、遍歷、排序等相關操作技巧,需要的朋友可以參考下
    2017-10-10
  • 詳解js圖片輪播效果實現(xiàn)原理

    詳解js圖片輪播效果實現(xiàn)原理

    這篇文章主要為大家詳細介紹了js圖片輪播效果實現(xiàn)原理,幫助大家更好地實現(xiàn)圖片輪播效果,真正理解圖片輪播原理,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2015-12-12
  • 基于原生js運動方式關鍵點的總結(推薦)

    基于原生js運動方式關鍵點的總結(推薦)

    下面小編就為大家?guī)硪黄谠鷍s運動方式關鍵點的總結(推薦)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-10-10
  • ThreeJS從創(chuàng)建場景到使用功能實例詳解

    ThreeJS從創(chuàng)建場景到使用功能實例詳解

    threejs是一個用于在瀏覽器中繪制3D圖像的JS庫,它是基于webgl實現(xiàn)了,包括了webgl1和webgl2的渲染引擎,下面這篇文章主要給大家介紹了關于ThreeJS從創(chuàng)建場景到使用功能的相關資料,需要的朋友可以參考下
    2022-08-08
  • javascript靜態(tài)的url如何傳遞

    javascript靜態(tài)的url如何傳遞

    javascript靜態(tài)的url如何傳遞...
    2007-05-05
  • JavaScript字符串檢索字符的方法

    JavaScript字符串檢索字符的方法

    這篇文章主要為大家詳細介紹了JavaScript字符串檢索字符的方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-06-06
  • 簡單的網(wǎng)頁廣告特效實例

    簡單的網(wǎng)頁廣告特效實例

    下面小編就為大家?guī)硪黄唵蔚木W(wǎng)頁廣告特效實例。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-08-08
  • javascript設計模式 – 策略模式原理與用法實例分析

    javascript設計模式 – 策略模式原理與用法實例分析

    這篇文章主要介紹了javascript設計模式 – 策略模式,結合實例形式分析了javascript策略模式相關概念、原理、用法及操作注意事項,需要的朋友可以參考下
    2020-04-04

最新評論