Seperti yang kita semua tahu, dalam JS, panjang string tidak dibagi menjadi karakter Cina dan Inggris, dan setiap karakter dihitung sebagai panjang, yang berbeda dari fungsi strlen () dalam php. Fungsi strlen () dalam PHP mengumpulkan 2 karakter Cina dalam GBK sesuai dengan set karakter, dan mengumpulkan 3 karakter Cina di UTF-8.
Beberapa sepatu anak -anak mungkin bertanya, mengapa Anda perlu menghitung panjang yang sebenarnya?
Ini terutama untuk mencocokkan rentang panjang database. Misalnya, bidang tertentu dalam database GBK adalah Varchar (10), yang setara dengan panjang 5 karakter Cina, dan satu karakter Cina sama dengan panjang dua huruf. Jika itu adalah database UTF8, setiap karakter Cina memiliki panjang 3.
Setelah mengetahui prinsip di atas, kita dapat menghitung panjang aktual suatu string. Jika itu adalah set karakter GBK, tambahkan 2 dalam bahasa Cina, dan jika itu adalah set karakter UTF8, tambahkan 3 dalam bahasa Cina.
Fungsi Perhitungan Panjang GBK:
Salinan kode adalah sebagai berikut:
// Hitung panjang sebenarnya dari set karakter 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);
if (charcode> = 0 && charcode <= 128) {
RealLength += 1;
}kalau tidak{
// Jika itu bahasa Cina, tambahkan 2 panjang
RealLength += 2;
}
}
return reallength;
}
Fungsi Perhitungan Panjang UTF8:
Salinan kode adalah sebagai berikut:
// Hitung panjang aktual set karakter UTF8
fungsi getStrleng (str) {
var reallength = 0;
var len = str.length;
var charcode = -1;
untuk (var i = 0; i <len; i ++) {
charcode = str.charcodeat (i);
if (charcode> = 0 && charcode <= 128) {
RealLength += 1;
}kalau tidak{
// Jika itu bahasa Cina, tambahkan 3 panjang
RealLength += 3;
}
}
return reallength;
}