String converter

Convert string to different sequences

HTML

<p><textarea id="inputText"></textarea><p>
<p><input type="checkbox" id="onlyNonASCII" class="onlyNonASCII" value="1" />Convert only non-ASCII charachters</p>
<p><button id="doIt">do it</button></p>

<h3>result</h3>
<h5>Decimal NCRs</h5>
<code id="Decimal-NCR"></code>
<h5>Unicode escape</h5>
<code id="Unicode-escape"></code>

CSS

#inputText {
    width: 90%;
}
code {
    display:block;
    padding: 4px;
    background-color: #EFEFEF;
}

JavaScript

var convert = {
    toUnicodeEscape : function(str, onlyNonAscii){
		// Каждый символ строки отдельный элемент в массиве
    	var ret = str.split("")
    	// Обрабатываем каждый символ функцией
    	.map(function(item, i, arr){
        	// Возвращает Unicode значение символа.
        	// Возвращаемое значение всегда меньше 65536.
        	// См.: http://javascript.ru/String/charCodeAt
            if(onlyNonAscii && item.charCodeAt(0) > 31 && item.charCodeAt(0) < 127){
                return item;
            }
        	var charCode = item.charCodeAt(0),
            	pad = "0000";
        	// Преобразуем Unicode значение в Hexadecimal и дополняем нулями
        	return "\\u" + (pad + charCode.toString(16)).slice(-4);
    	})
    	// Склеиваем элементы массива в строку
    	.join("");
        return ret;
    },
    toDecimalNCR : function(str){
        return str.replace(/[\u00A0-\u9999<>\&]/gim, function(i) {
       				return '&#'+i.charCodeAt(0)+';';
    			});
    }
};

function toUnicodeEscape(str){

    	var ret = str.split("")
    	.map(function(item, i, arr){
            if(item.charCodeAt(0) > 31 && item.charCodeAt(0) < 127){
                return item;
            }
        	var charCode = item.charCodeAt(0),
            	pad = "0000";
        	return "\\u" + (pad + charCode.toString(16)).slice(-4);
    	})
    	.join("");
 
        return ret;
    }

$('#doIt').click(function () {
    var str = $('#inputText').val(),
        onlyNonASCII = document.querySelector('.onlyNonASCII:checked') ? true : false;
        
    $('#Decimal-NCR').html(convert.toDecimalNCR(str).replace(/&/gim, '&amp;'));
    alert(toUnicodeEscape(str));
    $("#Unicode-escape").html(toUnicodeEscape(str));
});