如何使用JavaScript将字符转换为ASCII码?

例如:

从“\n”中得到10。


当前回答

截至2023年

从字符到ASCII码

使用方法charCodeAt

控制台日志(“\ n "。charCodeAt ()

从ASCII码到字符

使用fromCharCode方法

console.log(String.fromCharCode(10))

其他回答

为了支持来自ES6的所有UTF-16(也非bmp /补充字符),string.codePointAt()方法可用;

此方法是charCodeAt的改进版本,它只支持< 65536(216 -单个16位)的unicode码点。

正如其他人指出的那样,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

您可以输入一个字符并使用此代码获取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 >

也许这也很有用(ascii字符按ascii表中的顺序排列):

let ascii_chars = "";
for (let i = 32; i <= 126; ++i) {
    ascii_chars += String.fromCharCode(i);
}
document.write(ascii_chars);

如果你只有一个字符而不是字符串,你可以使用:

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

省略0…

它曾经比'n'. charcodeat(0)慢得多,但我现在已经测试过了,我再也看不到任何区别了(带0和不带0执行了100亿次)。仅在Chrome和Firefox中测试了性能。