JavaScriptsTexteffekte

Buchstabieralphabet

Buchstabiert jeden Text nach NATO-Alphabet oder deutscher Buchstabiertafel — klassisch mit Namen oder neu mit Städten.

Am Telefon klingen B und P, D und T, M und N zum Verwechseln ähnlich. Deshalb gibt es Buchstabiertafeln: Statt des Buchstabens sagt man ein Wort, das mit ihm beginnt und sich von allen anderen deutlich unterscheidet. Dieses Script übersetzt euren Text in drei verschiedene solcher Tafeln — praktisch, um eine Auftragsnummer oder eine Adresse fürs Vorlesen vorzubereiten.

Das NATO-Alphabet ist international und wird in Luftfahrt, Seefahrt und Funkverkehr benutzt: Alfa, Bravo, Charlie. Die Wörter wurden in den fünfziger Jahren nicht ausgewürfelt, sondern aufwendig getestet — sie mussten auch bei starkem Rauschen und mit ausländischem Akzent unterscheidbar bleiben. Deshalb heißt es „Alfa" und nicht „Alpha" und „Juliett" mit zwei T: Damit Sprecher romanischer Sprachen das Schluss-T nicht verschlucken.

Die deutsche Tafel mit Vornamen — Anton, Berta, Cäsar — ist die Fassung, die den meisten aus der Schule vertraut ist. Seit Juni 2022 gibt es mit der überarbeiteten DIN 5009 eine Tafel mit Städtenamen: Aachen, Berlin, Chemnitz. Der Anlass war die Geschichte der alten Tafel — 1934 waren die jüdischen Namen darin gestrichen worden, und einige der Ersatznamen standen bis zuletzt in der Norm. Die neue Tafel umgeht das Thema, indem sie ganz auf Vornamen verzichtet.

Verwandtes: Morsecode löst dieselbe Aufgabe für die Telegrafie, die Brailleschrift für das Ertasten. Und der Bacon-Chiffre zeigt, wie man denselben Gedanken — ein Zeichen durch eine Gruppe ersetzen — zur Verschlüsselung wendet.

Texteffekte Baujahr 2026 läuft in deinem Browser

Die Eingabe wird bei jedem Tippen neu übersetzt. Unbekannte Zeichen erscheinen in Klammern.

Script von kostenlose-javascripts.de

So funktioniert das Script

Der Aufbau ist derselbe wie bei jedem Ersetzungsskript: drei Zuordnungstabellen und eine Schleife, die den Text damit durchgeht. Die Feinheiten stecken in den Sonderfällen — Leerzeichen, Kleinschreibung und Zeichen, für die es kein Wort gibt.

const tafeln = {
  nato: { A: "Alfa", B: "Bravo", … },
  namen: { A: "Anton", "Ä": "Ärger", … },
  staedte: { A: "Aachen", … }
};

Alle drei Tafeln liegen in einem gemeinsamen Objekt, damit das Auswahlfeld direkt den Schlüssel liefert. Beachtet die Anführungszeichen um "Ä" und die Ziffern: Objektschlüssel dürfen ohne Anführungszeichen stehen, solange sie gültige Namen sind — Umlaute und Ziffern gehören nicht dazu, deshalb müssen sie in Anführungszeichen. Vergisst man das, meckert der Browser mit einer Fehlermeldung, die auf die falsche Zeile zeigt.

const gross = zeichen.toUpperCase();
const wort = tafel[gross];

Nachgeschlagen wird immer mit dem Großbuchstaben, damit die Tabelle nur einmal existieren muss. Das eigentliche Zeichen bleibt daneben erhalten, denn es wird gleich noch gebraucht.

teile.push(zeichen === gross ? wort : wort + " (klein)");

Hier steckt ein hübscher Trick: Ob ein Zeichen klein geschrieben ist, erkennt man daran, dass es sich von seiner eigenen Großschreibung unterscheidet. Diese Prüfung kommt ohne Zeichenlisten aus und funktioniert auch für Umlaute. Beim echten Buchstabieren ist die Unterscheidung wichtig — „Meier" und „meier" sind verschiedene Namen.

if (wort !== undefined) { … } else {
  teile.push("(" + zeichen + ")");
}

Für Bindestriche, Punkte oder Klammern gibt es in den Tafeln kein Wort. Statt sie stillschweigend zu verschlucken — der bequeme, aber falsche Weg —, erscheinen sie in Klammern. Wer eine Nummer buchstabiert, muss schließlich wissen, dass da ein Bindestrich steht.

feld.addEventListener("input", buchstabieren);
document.getElementById("nb-tafel").addEventListener("change", buchstabieren);

Dieselbe Funktion hängt an drei Auslösern: am Knopf, am Tippen im Textfeld und am Wechsel der Tafel. Das ist der Vorteil davon, die Arbeit in eine benannte Funktion zu packen, statt sie direkt in den Ereignis-Empfänger zu schreiben — sie lässt sich beliebig oft und von überall aufrufen. Beachtet den Unterschied der Ereignisse: input feuert bei jedem Zeichen, change bei Auswahlfeldern erst, wenn eine andere Zeile gewählt wurde.

Zum Anpassen: Weitere Tafeln — etwa die englische ICAO-Variante mit „Niner" für die Neun oder eine eigene Vereinstafel — sind je ein zusätzlicher Eintrag in tafeln plus eine Zeile im Auswahlfeld. Wollt ihr die Ausgabe untereinander statt in einer Zeile, ersetzt ihr teile.join(" · ") durch teile.join("\n").

Script für die eigene Homepage

Kopiert euch den kompletten Code und fügt ihn an der Stelle eurer Seite ein, an der das Script erscheinen soll. Er läuft ohne weitere Dateien und ohne fremde Server.

Mehr aus der Kategorie Texteffekte