web-dev-qa-db-fra.com

Convertir le caractère en ASCII code en JavaScript

Comment convertir un caractère en code ASCII à l'aide de JavaScript? 

Par exemple:

obtenez 10 de "\ n".

810
levik
"\n".charCodeAt(0);
1270
Jim

String.prototype.charCodeAt() peut convertir des caractères de chaîne en nombres ASCII. Par exemple:

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

Dans le cas contraire, utilisez String.fromCharCode(10) qui convertit les nombres en caractères ASCII Cette fonction peut accepter plusieurs numéros et joindre tous les caractères, puis renvoie la chaîne. Exemple:

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

Voici une rapide référence aux caractères ASCII:

{
"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": ""
}
340
Mohsen

Si vous n'avez qu'un seul caractère et pas une chaîne, vous pouvez utiliser:

'\n'.charCodeAt();

en omettant le 0 ...

C'est plus lent cependant. Avec la version actuelle de chrome, il est 5 fois plus lent.

26
Marco Altieri

Alors que les autres réponses sont correctes, je préfère cette façon:

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

Ensuite, pour l'utiliser, simplement:

var lineBreak = ascii("\n");

J'utilise ceci pour un petit système de raccourci:

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

Et vous pouvez même l'utiliser à l'intérieur de map () ou d'autres méthodes:

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

Pour ceux qui veulent obtenir la somme de tous les codes ASCII d'une chaîne:

'Foobar'
  .split('')
  .map(function (char) {
    return char.charCodeAt(0);
  })
  .reduce(function (current, previous) {
    return previous + current;
  });

Ou, ES6:

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

JavaScript stocke les chaînes sous la forme UTF-16 (double octet). Par conséquent, si vous souhaitez ignorer le deuxième octet, supprimez-le simplement avec un opérateur & au niveau du bit sur 0000000011111111 (par exemple, 255):

'a'.charCodeAt(0) & 255 === 97; // because 'a' = 97 0 
'b'.charCodeAt(0) & 255 === 98; // because 'b' = 98 0 
'✓'.charCodeAt(0) & 255 === 19; // because '✓' = 19 39
6
Steven de Salas

Vous pouvez entrer un caractère et obtenir un code Ascii en utilisant ce code

Par exemple, entrez un caractère comme A Vous obtenez le code ASCII 65

function myFunction(){
    var str=document.getElementById("id1");
    if (str.value=="") {
       str.focus();
       return;
    }
    var a="ASCII Code is == >  ";
document.getElementById("demo").innerHTML =a+str.value.charCodeAt(0);
}
<p>Check ASCII code</p>

<p>
  Enter any character:  
  <input type="text" id="id1" name="text1" maxLength="1">	</br>
</p>

<button onclick="myFunction()">Get ASCII code</button>

<p id="demo" style="color:red;"></p>

1
Keshav Gera

Pour prendre en charge tous les caractères UTF-16 (et non-BMP/supplémentaires ) de ES6 également, la méthode string.codePointAt () est disponible;

Cette méthode est une version améliorée de charCodeAt qui pourrait prendre en charge uniquement les points de code unicode <65536 (216 - un seul 16 bits).

1
maioman

On peut obtenir la liste de tous les caractères imprimables ASCII en utilisant une boucle for.

for(var i = 33; i < 127; i++){
	document.write("<p>"+i + ": " + String.fromCharCode(i)+"</p>");
}

0
Muhammad