Главная » 2011 » Август » 15 » JavaScript. Получить длину строки в байтах
09:28
JavaScript. Получить длину строки в байтах
Мне потребовалась функция подсчета количества байтов в строке (в UTF8 разные символы имеют длину от 1 до 6 байтов). Как источник - использовал статью на Википедии: UTF-8, там я подсмотрел в таблицу, в которой указано сколько байтов занимает символ, в зависимости от порядкового номера. Потом расширил стандартный класс String - новой удобной функцией, которая, корректно находит длину строки в байтах, а не символах:
String.prototype.byteLength = function(){ 
var str = this, length = str.length, count = 0, i = 0, ch = 0;
for(i; i < length; i++){
ch = str.charCodeAt(i);
if(ch <= 127){
count++;
}else if(ch <= 2047){
count += 2;
}else if(ch <= 65535){
count += 3;
}else if(ch <= 2097151){
count += 4;
}else if(ch <= 67108863){
count += 5;
}else{
count += 6;
}
}
return count;
};
Пример использования:
var str = "Строка"; 
console.log('Length: ', str.byteLength(), ' byte(s)');
Просмотров: 1329 | Добавил: Sergey Saenko | Рейтинг: 0.0/0
Всего комментариев: 0
Имя *:
Email *:
Код *: