Convert character to ASCII code in JavaScript
如何使用javascript将字符转换为其ASCII代码?
例如:
get 10 from"
".
号
1 2 | " ".charCodeAt(0); |
1 | "ABC".charCodeAt(0) // returns 65 |
号
相反,使用
1 | String.fromCharCode(65,66,67); // returns 'ABC' |
以下是一个快速的ASCII字符参考:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | { "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":"" } |
。
如果只有一个字符而不是字符串,则可以使用:
1 2 | ' '.charCodeAt(); |
省略0…
不过速度慢了。与当前版本的Chrome相比,它慢了5倍。
虽然其他答案是正确的,但我更喜欢这样:
1 | function ascii (a) { return a.charCodeAt(0); } |
。
然后,要使用它,只需:
1 2 | var lineBreak = ascii(" "); |
。
我用这个做一个小的快捷系统:
1 2 3 4 5 6 | $(window).keypress(function(event) { if (event.ctrlKey && event.which == ascii("s")) { savecontent(); } // ... }); |
甚至可以在map()或其他方法中使用它:
1 | var ints = 'ergtrer'.split('').map(ascii); |
。
对于那些想要得到一个字符串的所有ASCII代码的总和的用户:
1 2 3 4 5 6 7 8 | 'Foobar' .split('') .map(function (char) { return char.charCodeAt(0); }) .reduce(function (current, previous) { return previous + current; }); |
或者,ES6:
1 2 3 | [...'Foobar'] .map(char => char.charCodeAt(0)) .reduce((current, previous) => previous + current) |
。
javascript将字符串存储为
1 2 3 | '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 |
号
您可以使用此代码输入字符并获取ASCII代码
例如,输入一个类似你得到ASCII码65
1 2 3 4 5 6 7 8 9 | 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); } |
号
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | <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> |
号
为了支持ES6中的所有UTF-16(也是非BMP/补充字符),可以使用string.codepointat()方法;
此方法是charcodeat的改进版本,它只支持小于65536(216-单个16位)的Unicode码点。
可以使用for循环获取所有可打印的ASCII字符的列表。
1 2 3 4 5 | for(var i = 33; i < 127; i++){ document.write("<p> "+i +":" + String.fromCharCode(i)+" </p>"); } |
号