1248 Stimmen

Umwandlung von Zeichen in ASCII-Code in JavaScript

Wie kann ich mit JavaScript ein Zeichen in seinen ASCII-Code umwandeln?

Zum Beispiel:

erhalten 10 von " \n ".

14voto

Ibrahim Lawal Punkte 1038

Um volle Unicode-Unterstützung und Reversibilität zu gewährleisten, sollten Sie die Verwendung von:

'\n'.codePointAt(0);

Dadurch wird sichergestellt, dass Sie beim Testen von Zeichen, die die UTF-16-Grenze überschreiten, deren wahren Codepunktwert erhalten.

z.B..

''.codePointAt(0); // 68181
String.fromCodePoint(68181); // ''

''.charCodeAt(0);  // 55298
String.fromCharCode(55298);  // ''

13voto

Vladimir Bushma Punkte 89

Konvertierung einer Zeichenkette in ein Array (Stream) von UTF-8:

const str_to_arr_of_UTF8 = new TextEncoder().encode("Adfgdfs");
// [65, 100, 102, 103, 100, 102, 115]

Hinweis : ASCII ist eine Untermenge von UTF-8, daher ist dies eine universelle Lösung

11voto

Steven de Salas Punkte 19903

JavaScript speichert Zeichenketten als UTF-16 (Doppelbyte). Wenn Sie also das zweite Byte ignorieren wollen, entfernen Sie es einfach mit einer bitweisen & Betreiber von 0000000011111111 (d.h. 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

4voto

Roko C. Buljan Punkte 178158

Um einen String in eine kumulative Zahl umzuwandeln:

const stringToSum = str => [...str||"A"].reduce((a, x) => a += x.codePointAt(0), 0);

console.log(stringToSum("A"));              // 65
console.log(stringToSum("Roko"));           // 411
console.log(stringToSum("Stack Overflow")); // 1386

Anwendungsfall:

Angenommen, Sie möchten je nach Benutzernamen unterschiedliche Hintergrundfarben erzeugen:

const stringToSum = str => [...str||"A"].reduce((a, x) => a += x.codePointAt(0), 0);

const UI_userIcon = user => {
  const hue = (stringToSum(user.name) - 65) % 360; // "A" = hue: 0
  console.log(`Hue: ${hue}`);
  return `<div class="UserIcon" style="background:hsl(${hue}, 80%, 60%)" title="${user.name}">
    <span class="UserIcon-letter">${user.name[0].toUpperCase()}</span>
  </div>`;
};

[
  {name:"A"},
  {name:"Amanda"},
  {name:"amanda"},
  {name:"Anna"},
].forEach(user => {
  document.body.insertAdjacentHTML("beforeend", UI_userIcon(user));
});

.UserIcon {
  width: 4em;
  height: 4em;
  border-radius: 4em;
  display: inline-flex;
  justify-content: center;
  align-items: center;
}

.UserIcon-letter {
  font: 700 2em/0 sans-serif;
  color: #fff;
}

3voto

Keshav Gera Punkte 9684

Sie können ein Zeichen eingeben und erhalten Ascii Code mit diesem Code

Beispiel Eingabe eines Zeichens wie A Sie erhalten Ascii-Code 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>

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X