Comment convertir un caractère en code ASCII à l'aide de JavaScript?
Par exemple:
obtenez 10 de "\ n".
"\n".charCodeAt(0);
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": ""
}
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.
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);
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)
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
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>
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).
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>");
}