Rumah  >  Artikel  >  hujung hadapan web  >  Fungsi pengiraan panjang sebenar rentetan GBK, UTF8 dilaksanakan oleh pengetahuan JavaScript_Basic

Fungsi pengiraan panjang sebenar rentetan GBK, UTF8 dilaksanakan oleh pengetahuan JavaScript_Basic

WBOY
WBOYasal
2016-05-16 16:38:332042semak imbas

Seperti yang kita semua tahu, panjang rentetan dalam JS tidak membezakan antara aksara Cina dan Inggeris Setiap aksara dikira sebagai panjang, yang berbeza daripada fungsi strlen() dalam PHP. Fungsi strlen() dalam PHP mengumpul aksara Cina GBK sebanyak 2 dan aksara Cina UTF-8 sebanyak 3 mengikut set aksara.

Sesetengah kasut kanak-kanak mungkin bertanya, mengapa kita perlu mengira panjang sebenar?

Terutamanya untuk memadankan julat panjang pangkalan data Contohnya, medan dalam pangkalan data GBK ialah varchar(10), yang bersamaan dengan panjang 5 aksara Cina dan satu aksara Cina bersamaan dengan panjang dua huruf. . Jika ia adalah pangkalan data UTF8, panjang setiap aksara Cina ialah 3.

Setelah mengetahui prinsip di atas, kita boleh mengira panjang sebenar rentetan Jika ia adalah set aksara GBK, tambah 2 apabila menemui aksara Cina Jika ia adalah set aksara UTF8, tambah 3 apabila menemui aksara Cina
Fungsi pengiraan panjang GBK:

Salin kod Kod adalah seperti berikut:

// Pengiraan panjang sebenar set aksara GBK
fungsi getStrLeng(str){
var RealLength = 0;
var len = str.length;
var charCode = -1;
untuk(var i = 0; i < len; i ){
​​​​ charCode = str.charCodeAt(i);
Jika (charCode >= 0 && charCode <= 128) {
                Panjang sebenar = 1;
          }lain{
                       // Jika bahasa Cina, tambah 2 pada panjang
               Panjang sebenar = 2;
       }
}  
Kembalikan RealLength;
}

Fungsi pengiraan panjang UTF8:
Salin kod Kod adalah seperti berikut:

// set aksara UTF8 pengiraan panjang sebenar
fungsi getStrLeng(str){
var RealLength = 0;
var len = str.length;
var charCode = -1;
untuk(var i = 0; i < len; i ){
​​​​ charCode = str.charCodeAt(i);
Jika (charCode >= 0 && charCode <= 128) {
                Panjang sebenar = 1;
          }lain{
                      // Jika bahasa Cina, tambah 3 pada panjang
               Panjang sebenar = 3;
       }
}  
Kembalikan RealLength;
}
Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn