Как создать сайтТермины Статьи Последние правки
20.04.2018
Unity3D

Статьи / JavaScript


Конвертировать unicode escape sequence в читабельную строку

var str = '\u0433\u0432\u0435';

function getWholeChar (str, i) {
var code = str.charCodeAt(i);

if (isNaN(code)) {
return ''; // Позиция не найдена
}
if (code < 0xD800 || code > 0xDFFF) {
return str.charAt(i);
}
if (0xD800 <= code && code <= 0xDBFF) { // Высокий сурогат (можно заменить последнюю последовательность hex to 0xDB7F для обработки высоко приватных сурогатов как одиночних символов)
if (str.length <= (i+1)) {
throw 'High surrogate without following low surrogate';
}
var next = str.charCodeAt(i+1);
if (0xDC00 > next || next > 0xDFFF) {
throw 'High surrogate without following low surrogate';
}
return str.charAt(i)+str.charAt(i+1);
}
// Низкий сурогат (0xDC00 <= code && code <= 0xDFFF)
if (i === 0) {
throw 'Low surrogate without preceding high surrogate';
}
var prev = str.charCodeAt(i-1);
if (0xD800 > prev || prev > 0xDBFF) { // (could change last hex to 0xDB7F to treat high private surrogates as single characters)
throw 'Low surrogate without preceding high surrogate';
}
return false;
}
var t = '';
for (var i=0, chr; i < str.length; i++) {
if ((chr = getWholeChar(str, i)) === false) {continue;}
t+=chr;
}

alert(t);