Heim >Web-Frontend >js-Tutorial >Zählen mit einem willkürlichen Zeichensatz

Zählen mit einem willkürlichen Zeichensatz

Christopher Nolan
Christopher NolanOriginal
2025-03-04 01:11:08530Durchsuche

Counting with an Arbitrary Character Set

Kernpunkte

  • Verwenden der beliebigen Zeichensatzzählung in JavaScript erfordert das Erstellen eines Vokabulars, d. H. Ein als Unicode -Escape -Sequenzzeichenfolge definiertes Zeichenwörterbuch. Jedem Charakter im Zeichensatz wird ein eindeutiger Wert zugewiesen, und der Zählprozess durchquert den gesamten Zeichensatz und windet sich zum Anfang zurück, wenn er das Ende erreicht.
  • In JavaScript können integrierte Funktionen, die Zahlen zwischen verschiedenen numerischen Kardinalitäten analysieren und konvertieren, erweitert werden, um mit willkürlichen Zeichensätzen umzugehen. Dies ermöglicht das Zählen in nicht dezimaler Kardinalität und die Umwandlung von Dezimalzahlen in nicht-dezimale numerische Zeichenfolgen, selbst mit ungewöhnlichen Zeichen wie griechischen oder kyrillischen Buchstaben, Hieroglyphen oder Runen.
  • Das Konzept der Verwendung der beliebigen Charakter -Set -Zählung hat eine breite Palette von Anwendungen, insbesondere in den Bereichen Informatik und Kryptographie. Es ermöglicht eine große Anzahl möglicher Kombinationen, was es ideal macht, um eindeutige Kennungen, Verschlüsselungsschlüssel und sichere Passwörter zu erstellen. Je größer der Zeichensatz ist, desto länger die Zeichenfolge, desto potenzieller Kombinationen gibt es, je mehr Sicherheit es ist.

In diesem Artikel wird eine einfache und flexible willkürliche Zählungstechnik vorgestellt. Obwohl diese Technik bei Bedarf nicht oft erforderlich ist, werden Sie feststellen, dass die integrierten Funktionen von JavaScript nicht vollständig erledigen können. JavaScript verfügt über integrierte Funktionen zum Parsen und Umwandeln von Zahlen zwischen verschiedenen numerischen Kardinalitäten. Beispielsweise kann die parseInt -Methode jede Kardinalität (numerische Kardinalität) von 2 bis 36 verarbeiten und wird normalerweise für die numerische Umwandlung und Zählung von nicht dezimaler Kardinalität verwendet. Number.toString Methode kann die Konvertierung umkehren und Dezimalzahlen in nicht dezimaler numerischer Zeichenfolge umwandeln:

var character = "2F";
alert(parseInt(character, 16));    // 弹出 47

var number = 47;
alert(number.toString(16));        // 弹出 "2F"

Aber was ist, wenn Sie mit Klingonnummern zählen möchten? Oder wahrscheinlicher, verwenden Sie griechische oder kyrillische Buchstaben, Hieroglyphen oder eine Art Rune? Die Technik, die ich demonstrieren werde, kann dies mit Präzision in jeder numerischen Kardinalität tun.

Glossar ist entscheidend

Zunächst müssen wir ein Vokabular definieren, das Wörterbuch der Zeichen verwenden, die als eine einzelne Reihe von Unicode -Escape -Sequenzen definiert werden. In diesem Fall haben wir 16 griechische Kapitalbuchstaben von Alpha bis PI - jede Zahl wird durch einen Buchstaben dargestellt, und die Länge der gesamten Zeichenfolge bestimmt die numerische Basis:

var lexicon = "u0391u0392u0393u0394u0395u0396u0397u0398u0399u039au039bu039cu039du039eu039fu03a0";

Escape -Sequenz ist ein Zeichen

Es ist erwähnenswert, dass auch wenn sechs Tippzeichen für die Definition einer Unicode -Escape -Sequenz benötigt werden, es als nur ein Zeichen in der Zeichenfolge erscheint, sodass die Vokabularlänge 16 Zeichen beträgt. Sobald wir ein Wortschatz haben, können wir String.charAt verwenden, um Zeichen nach Zahlenindex zu zitieren.

var character = "2F";
alert(parseInt(character, 16));    // 弹出 47

var number = 47;
alert(number.toString(16));        // 弹出 "2F"

Daher basieren alle von uns durchgeführten Berechnungen auf beiden Methoden. Lassen Sie uns beispielsweise eine Schleife definieren, "κ" Iterationen ausführen und jedes Zeichen dazwischen auflisten:

var lexicon = "u0391u0392u0393u0394u0395u0396u0397u0398u0399u039au039bu039cu039du039eu039fu03a0";

Aber was ist mit größeren Zahlen, wie z. B. Zeichenäquivalenten, die 23 zeigen? Wir müssen nur die einzelnen Zahlen extrahieren und dann das Zeichenäquivalent erhalten, in diesem Fall 2 und 3:

var number = lexicon.indexOf("u0398");    // "Θ" 的十进制等价物

var character = lexicon.charAt(7);         // 7 的字符等价物

, um die Dinge interessanter zu machen, was ist, wenn die Nummer, die wir konvertieren, Buchstaben und Zahlen enthält, wie die Hexadezimalnummer "2f"? In diesem Fall müssen wir jede Zahl separat konvertieren, weil wir uns nicht mit dem hexadezimalen Index auf die Zeichen verweisen können (d. H. lexicon.charAt("F") muss lexicon.charAt(15) werden):

var str = "";
for(var i=0; i<lexicon.indexOf("u039a"); i++) {
    str += lexicon.charAt(i);
}
alert(str);

Natürlich sind die letzten beiden Beispiele recht einfach, da die Anzahl der Ziffern der Anzahl bekannt ist. Alle Komponenten, die Sie benötigen, werden hier bereitgestellt. Passen Sie sie einfach an Ihre spezifischen Anforderungen an.

Daten sind entscheidend!

Es kommt vor, dass Sie mit normalen lateinischen Zahlen und Buchstaben genauso zählen können, wenn Sie möchten. Die Skalierbarkeit des Glossars bedeutet, dass Sie es verwenden können, um die nativen Fähigkeiten von JavaScript auf eine Kardinalität von mehr als 36 zu erweitern und jedes Symbol zu verwenden, das zu der Zeit angemessen aussieht.

oder einfach ein paar stilvolle Uhren entwickeln!

Möchten Sie mehr wissen?

Wenn Sie mehr von James lesen möchten, abonnieren Sie unsere Weekly Tech Times Newsletter Tech Times.

FAQs über jeden Zeichensatz (FAQ)

(Der im Originaltext bereitgestellte FAQ

Das obige ist der detaillierte Inhalt vonZählen mit einem willkürlichen Zeichensatz. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn