Тема: JS Шестнадцатеричное представление строки
Написал по мотивам темы JScript Шестнадцатеричное представление файла.
Краткое описание:
String#dumpHex()
Преобразует строковый объект в его шестнадцатеричное представление, которое сгруппировано по 16 символов, разделенных символом перевода строки, и включает в себя смещение каждой группы относительно начала строки, шестнадцатеричное представление группы и оригинал.
Исходный код:
(function()
{
var ofsLen = 10;
var ofsPad = new Array(10).join('0');
var dumper = function(string)
{
return string.replace(/.|\n/g, function($0)
{
return ' ' + ('00' + $0.charCodeAt(0).toString(16)).slice(-2);
});
};
String.prototype.dumpHex = function()
{
var offset = 0;
var parts = this.match(/.{16}|.+/g);
var tailLen = this.length % 16;
var tailPart;
var tailSpace;
if ( tailLen ) {
tailPart = parts.pop();
tailSpace = new Array((16 - tailLen) * 3 + 1).join(' ');
}
var result = [];
for (var i = 0; i < parts.length; i++) {
var ofs = (ofsPad + offset.toString(16)).slice(-ofsLen);
offset += 16;
var orig = parts[i];
result.push(ofs + ': ' + dumper(orig) + ' ' + orig);
}
if ( tailLen ) {
result.push(ofs + ': ' + dumper(tailPart) + tailSpace + ' ' + tailPart);
}
return result.join('\n');
};
})();
Пример использования:
var s = '0123456789 ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz /+=';
var t = s.dumpHex();
alert(t);

