1248 Stimmen

Umwandlung von Zeichen in ASCII-Code in JavaScript

Wie kann ich mit JavaScript ein Zeichen in seinen ASCII-Code umwandeln?

Zum Beispiel:

erhalten 10 von " \n ".

1818voto

Jim Punkte 70896
"\n".charCodeAt(0);

500voto

Mohsen Punkte 61518

String.prototype.charCodeAt() kann Zeichenfolgen in ASCII-Zahlen umwandeln. Zum Beispiel:

"ABC".charCodeAt(0) // returns 65

Für den entgegengesetzten Gebrauch String.fromCharCode(10) die Zahlen in gleiche ASCII-Zeichen umwandeln. Diese Funktion kann mehrere Zahlen akzeptieren und alle Zeichen zusammenfügen und dann die Zeichenkette zurückgeben. Beispiel:

String.fromCharCode(65,66,67); // returns 'ABC'

Hier ist eine kurze Referenz der ASCII-Zeichen:

{
"31": "",      "32": " ",     "33": "!",     "34": "\"",    "35": "#",    
"36": "$",     "37": "%",     "38": "&",     "39": "'",     "40": "(",    
"41": ")",     "42": "*",     "43": "+",     "44": ",",     "45": "-",    
"46": ".",     "47": "/",     "48": "0",     "49": "1",     "50": "2",    
"51": "3",     "52": "4",     "53": "5",     "54": "6",     "55": "7",    
"56": "8",     "57": "9",     "58": ":",     "59": ";",     "60": "<",    
"61": "=",     "62": ">",     "63": "?",     "64": "@",     "65": "A",    
"66": "B",     "67": "C",     "68": "D",     "69": "E",     "70": "F",    
"71": "G",     "72": "H",     "73": "I",     "74": "J",     "75": "K",    
"76": "L",     "77": "M",     "78": "N",     "79": "O",     "80": "P",    
"81": "Q",     "82": "R",     "83": "S",     "84": "T",     "85": "U",    
"86": "V",     "87": "W",     "88": "X",     "89": "Y",     "90": "Z",    
"91": "[",     "92": "\\",    "93": "]",     "94": "^",     "95": "_",    
"96": "`",     "97": "a",     "98": "b",     "99": "c",     "100": "d",    
"101": "e",    "102": "f",    "103": "g",    "104": "h",    "105": "i",    
"106": "j",    "107": "k",    "108": "l",    "109": "m",    "110": "n",    
"111": "o",    "112": "p",    "113": "q",    "114": "r",    "115": "s",    
"116": "t",    "117": "u",    "118": "v",    "119": "w",    "120": "x",    
"121": "y",    "122": "z",    "123": "{",    "124": "|",    "125": "}",    
"126": "~",    "127": ""
}

64voto

Marco Altieri Punkte 3508

Wenn Sie nur ein Zeichen und keine Zeichenkette haben, können Sie verwenden:

'\n'.charCodeAt();
'\n'.codePointAt();

Weglassen der 0...

Früher war sie deutlich langsamer als 'n'.charCodeAt(0) aber ich habe es jetzt getestet und kann keinen Unterschied mehr feststellen (10 Milliarden Mal mit und ohne die 0 ausgeführt). Getestet für die Leistung nur in Chrome und Firefox.

34voto

Die anderen Antworten sind zwar richtig, aber ich bevorzuge diesen Weg:

function ascii (a) { return a.charCodeAt(0); }

Dann verwenden Sie es einfach:

var lineBreak = ascii("\n");

Ich verwende dies für ein kleines Shortcut-System:

$(window).keypress(function(event) {
  if (event.ctrlKey && event.which == ascii("s")) {
    savecontent();
    }
  // ...
  });

Und Sie können sie sogar innerhalb von map() oder anderen Methoden verwenden:

var ints = 'ergtrer'.split('').map(ascii);

30voto

Filip Dupanović Punkte 30692

Für diejenigen, die eine Summe aller ASCII-Codes für eine Zeichenkette erhalten möchten:

'Foobar'
  .split('')
  .map(x=>x.charCodeAt(0))
  .reduce((a,b)=>a+b);

Oder ES6:

[...'Foobar']
  .map(char => char.charCodeAt(0))
  .reduce((current, previous) => previous + current)

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X