JavaScriptsZähler

Lesezeit berechnen

Schätzt, wie lange ein Text zu lesen dauert — stilles Lesen, lautes Vorlesen oder Überfliegen, jeweils mit Wort- und Satzzählung.

„Lesezeit: 4 Minuten" steht heute über vielen Artikeln, und die Angabe ist nützlicher, als sie aussieht — sie hilft beim Entscheiden, ob man jetzt anfängt oder später. Dieses Script rechnet sie für euren Text aus. Fügt ihn ein, und ihr bekommt die geschätzte Dauer, dazu die Zahl der Wörter, Sätze und Zeichen.

Die Rechnung ist im Kern einfach: Wörter geteilt durch Lesegeschwindigkeit. Interessant sind die Zahlen dahinter. Beim stillen Lesen eines normalen Sachtextes schaffen geübte Leser im Deutschen etwa 200 bis 250 Wörter je Minute. Wer laut vorliest, kommt auf 130 bis 150 — man kann nicht schneller sprechen, ohne dass es hetzt. Für Vorträge ist das die wichtigere Zahl: Ein Manuskript von 1500 Wörtern dauert vorgetragen rund elf Minuten, still gelesen knapp sieben. Beim Überfliegen sind 400 Wörter und mehr möglich, allerdings mit entsprechend geringerer Behaltensleistung.

Alle Angaben sind Durchschnittswerte und schwanken erheblich: mit der Übung des Lesers, mit der Schwierigkeit des Textes und mit dem Zweck. Ein Fachtext mit vielen Zahlen wird deutlich langsamer gelesen als eine Erzählung. Das Script nennt deshalb bewusst eine Spanne und nicht eine Zahl auf die Sekunde genau.

Verwandtes im Archiv: Wörter zählen und Buchstaben zählen für die reinen Zahlen, Blindtext-Generator für Übungsmaterial und Zeilen sortieren zum Aufräumen längerer Listen.

Zähler Baujahr 2026 läuft in deinem Browser

Durchschnittswerte — die tatsächliche Lesezeit hängt stark von Text und Leser ab.

Script von kostenlose-javascripts.de

So funktioniert das Script

Gezählt wird mit regulären Ausdrücken, gerechnet mit einer Division. Die Feinheiten liegen darin, was überhaupt als Wort und als Satz gilt — und wie man eine Dauer so ausgibt, dass sie sich natürlich liest.

woerter: bereinigt.split(/\s+/).length,

split zerlegt den Text an jeder Folge von Leerraumzeichen — Leerzeichen, Tabulatoren, Zeilenumbrüchen. Das + ist wichtig: Ohne es entstünde bei zwei Leerzeichen hintereinander ein leeres Wort. Und das trim() davor ist ebenso wichtig, denn ein Leerzeichen ganz am Anfang erzeugte sonst ebenfalls einen leeren ersten Eintrag. Beide Fehler fallen bei sauberen Testtexten nicht auf und bei echten sofort.

saetze: (bereinigt.match(/[.!?]+(\s|$)/g) || []).length,

Ein Satz endet mit Punkt, Ausrufe- oder Fragezeichen — aber nicht jeder Punkt beendet einen Satz. Das + fasst „…" und „?!" zu einem Ende zusammen, und die Bedingung „gefolgt von Leerraum oder Textende" sorgt dafür, dass Abkürzungen wie „z. B." nicht als Satzende zählen, solange sie mitten im Satz stehen. Perfekt ist das nicht — „Dr. Meier kam" wird als zwei Sätze gezählt —, aber für eine Schätzung reicht es. Eine wirklich verlässliche Satzerkennung braucht eine Abkürzungsliste.

const schnell = zahlen.woerter / (tempo * 1.15);
const langsam = zahlen.woerter / (tempo * 0.85);

Statt einer Scheingenauigkeit gibt das Script eine Spanne aus: fünfzehn Prozent schneller und langsamer. Das ist ehrlicher, denn die Streuung zwischen Lesern ist um ein Vielfaches größer als jede Rundung. Beachtet, dass die schnellere Lesegeschwindigkeit die kürzere Zeit ergibt — deshalb steht der größere Faktor in der Zeile mit dem Namen „schnell".

if (minuten < 1) {
  const sekunden = Math.max(1, Math.round(minuten * 60));
  return sekunden + " Sekunden";
}

„0,4 Minuten" sagt niemand. Unter einer Minute wird deshalb in Sekunden ausgegeben, darüber in Minuten und Sekunden. Math.max(1, …) verhindert die Ausgabe „0 Sekunden" bei einem einzelnen Wort — eine Kleinigkeit, die den Unterschied zwischen einem fertigen und einem halbfertigen Script ausmacht.

tempofeld.addEventListener("input", function () {
  artfeld.value = "eigen";
  auswerten();
});

Zwei Bedienelemente steuern denselben Wert: das Auswahlfeld setzt das Zahlenfeld, und wer das Zahlenfeld von Hand ändert, stellt das Auswahlfeld auf „eigene Geschwindigkeit". So widersprechen sich die beiden Anzeigen nie — ein Muster, das man bei jeder doppelten Eingabemöglichkeit braucht.

Zum Anpassen: Für die Lesezeit einer ganzen Webseite ersetzt ihr feld.value durch document.body.innerText — damit zählt das Script den sichtbaren Text der Seite, auf der es eingebaut ist. Für Sprachen mit anderer Wortlänge sind die Richtwerte anzupassen; im Englischen liest man wegen der kürzeren Wörter etwa zehn Prozent mehr Wörter je Minute.

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 Zähler