如何使用JavaScript将字符转换为ASCII码?
例如:
从“\n”中得到10。
如何使用JavaScript将字符转换为ASCII码?
例如:
从“\n”中得到10。
当前回答
正如其他人指出的那样,ASCII只包含128个字符(包括非打印字符)。为了向后兼容,Unicode将ASCII作为其前128个字符,但它还包括更多字符。
如果只获取整数形式的ASCII字符码,您可以执行以下操作:
function ascii_code (character) {
// Get the decimal code
let code = character.charCodeAt(0);
// If the code is 0-127 (which are the ASCII codes,
if (code < 128) {
// Return the code obtained.
return code;
// If the code is 128 or greater (which are expanded Unicode characters),
}else{
// Return -1 so the user knows this isn't an ASCII character.
return -1;
};
};
如果你只寻找字符串中的ASCII字符(例如,slugified一个字符串),你可以这样做:
function ascii_out (str) {
// Takes a string and removes non-ASCII characters.
// For each character in the string,
for (let i=0; i < str.length; i++) {
// If the character is outside the first 128 characters (which are the ASCII
// characters),
if (str.charCodeAt(i) > 127) {
// Remove this character and all others like it.
str = str.replace(new RegExp(str[i],"g"),'');
// Decrement the index, since you just removed the character you were on.
i--;
};
};
return str
};
来源
https://www.geeksforgeeks.org/ascii-vs-unicode/: ~:文本Unicode % 20 = % 20 % 20普遍% 20字符,编码% 20标准% 20 % 20电子% 20的沟通。 https://www.w3schools.com/jsref/jsref_charcodeat.asp
其他回答
JavaScript将字符串存储为UTF-16(双字节),所以如果你想忽略第二个字节,只需在0000000011111111(即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
虽然其他答案都是正确的,但我更喜欢这样:
function ascii (a) { return a.charCodeAt(0); }
然后,要使用它,简单地:
var lineBreak = ascii("\n");
我正在使用这个小快捷系统:
$(window).keypress(function(event) {
if (event.ctrlKey && event.which == ascii("s")) {
savecontent();
}
// ...
});
你甚至可以在map()或其他方法中使用它:
var ints = 'ergtrer'.split('').map(ascii);
您可以输入一个字符并使用此代码获取Ascii码
例如输入字符a 你得到Ascii码65
函数myFunction () { var str = . getelementbyid (id1); If (str.value=="") { str.focus (); 返回; } var a="ASCII码== > "; . getelementbyid(“演示”)。innerHTML = a + str.value.charCodeAt (0); } <p>检查ASCII码</p> < p > 输入任意字符: <input type="text" id="id1" name="text1" maxLength="1"> </br> < / p > <按钮onclick = " myFunction ()>获取ASCII码</按钮> < span style=" font - family:宋体;" > < / p >
charCodeAt(0);
以上代码在大多数情况下都可以工作,但是在使用单词查找基于上述代码的排名时存在一个问题。例如,aa会给出97+97 = 194(实际会是1+1 = 2),而w会给出119(实际会是23),这使得aa > w。 要解决这个问题,从上面的结果减去96,从1开始定位。
字符代码(0) - 96;
str.charCodeAt(index)
使用charCodeAt () 下面的示例返回A的Unicode值65。
'ABC'.charCodeAt(0) //返回65