Как поменять String.fromCharCode? - PullRequest
45 голосов
/ 15 января 2010

String.fromCharCode (72) дает H. Как получить число 72 из символа H?

Ответы [ 4 ]

56 голосов
/ 15 января 2010
'H'.charCodeAt(0)
9 голосов
/ 15 января 2010

Использовать charCodeAt:

var str = 'H';
var charcode = str.charCodeAt(0);
7 голосов
/ 23 октября 2014

@ Ответ Сильвио верен только для кодовых точек до 0xFFFF (что в итоге является максимумом, который может вывести String.fromCharCode). Вы не можете всегда предполагать, что длина символа равна единице:

'?'.length
-> 2

Вот что работает:

var utf16ToDig = function(s) {
    var length = s.length;
    var index = -1;
    var result = "";
    var hex;
    while (++index < length) {
        hex = s.charCodeAt(index).toString(16).toUpperCase();
        result += ('0000' + hex).slice(-4);
    }
    return parseInt(result, 16);
}

Используя его:

utf16ToDig('?').toString(16)
-> "d800df30"

(Вдохновение от https://mothereff.in/utf-8)

7 голосов
/ 04 сентября 2012

Вы можете определить свои собственные глобальные функции, например:

function CHR(ord)
{
    return String.fromCharCode(ord);
}

function ORD(chr)
{
    return chr.charCodeAt(0);
}

Затем используйте их так:

var mySTR = CHR(72);

или

var myNUM = ORD('H');

(Если вы хотите использовать их более одного раза и / или много в вашем коде.)

...