Skip to main content

Text-Wiederholer

Wiederhole Text mehrfach mit benutzerdefinierten Trennzeichen.

Geprüft von · Zuletzt geprüft

Den Text-Wiederholer verwenden

  1. Tippe oder füge den zu wiederholenden Text in das Eingabefeld ein. Jede Zeichenfolge funktioniert - ein einzelnes Zeichen, ein Satz, ein mehrzeiliger Block oder ein vollständiger Absatz.
  2. Lege die Wiederholungsanzahl zwischen 1 und 10.000 fest. Das Werkzeug erzwingt die Obergrenze, um deinen Browser-Tab davor zu schützen, sich selbst mit übermäßiger Ausgabe zu überlasten.
  3. Wähle ein Trennzeichen: keines (direkt verketten), Zeilenumbruch (eine Wiederholung pro Zeile), Leerzeichen, Komma oder eine benutzerdefinierte Zeichenfolge, die du in das benutzerdefinierte Trennzeichenfeld eingibst.
  4. Lies das Ausgabefenster, das sich unter den Steuerelementen füllt. Zeichen- und Wortzahlen werden neben der Ausgabe angezeigt, sodass du bestätigen kannst, dass du eine bestimmte Ziellänge erreicht hast.
  5. Klicke auf Kopieren, um den wiederholten Text in deine Zwischenablage zu senden.

Was das Werkzeug tatsächlich tut

Im Kern ruft der Wiederholer Array(count).fill(text).join(separator) auf, was ein Array von Referenzen alloziert (keine Kopien) und dann einmal in die endgültige Zeichenfolge verbindet. Das ist etwas effizienter als String.prototype.repeat in einer Schleife aufzurufen, weil das Verbinden in einem einzigen nativen Aufruf stattfindet statt mehrfach. Für den Sonderfall eines leeren Trennzeichens wechselt das Werkzeug zu text.repeat(count), was der schnellste Pfad ist, den die ECMAScript-Spezifikation bietet - O(n log count) in den meisten Engines dank Optimierungen bei der Zeichenfolgen-Verkettung. Die Eingabevalidierung klemmt die Anzahl auf [1, 10000], schneidet führende NaN ab und lehnt negative Werte ab. Längenstatistiken werden auf der endgültigen Zeichenfolge mit str.length für UTF-16-Codeeinheiten und einem einfachen Leerzeichen-Split für die Wortzahl berechnet. All das läuft auf dem Hauptthread im aktuellen Browser-Tab - kein Netzwerkverkehr, keine Telemetrie.

Wann du es verwenden würdest

  • Testdaten generieren: 1000 Kopien eines Platzhaltelsatzes für Lasttests eines Eingabefelds oder einer Textspaltenbreite.
  • Lorem-ipsum-Stil-Fülltext erstellen, wenn du etwas Spezifisches und Erkennbares brauchst (wie {{Platzhalter}} wiederholt) statt Standard-Latein.
  • ASCII-Banner oder Trennlinien erzeugen, zum Beispiel 80 Kopien von - oder 40 Kopien von = für eine README-Überschrift.
  • Stress-Test-Zeichenfolgen bauen, die absichtlich genau eine bestimmte Größe haben: 256 KB eines bekannten Musters, um einen Parser über seine Puffergrenze zu drängen.
  • CSV-Fixtures zusammenstellen, bei denen jede Zeile ähnlich ist, sodass du dich auf das Testen einer variierenden Spalte konzentrieren kannst.
  • Repetitive Liedtexte, Gedichte oder Typografie-Übungen erstellen, bei denen dieselbe Phrase viele Male mit einem bestimmten Trennzeichen erscheinen muss.

Häufige Fallstricke und Randfälle

  • Speicherexplosion. Eine 1-KB-Eingabe 10.000 mal wiederholt sind 10 MB Ausgabe, was die meisten Browser ohne Probleme rendern, aber die Scroll-Leistung einfrieren wird, wenn du das Textfeld zu bearbeiten versuchst. Halte die Ausgabe unter 50 MB oder der Tab kann nicht mehr reagieren.
  • Trennzeichen innerhalb der Eingabe. Wenn dein Text bereits mit einem Zeilenumbruch endet und du Zeilenumbruch als Trennzeichen wählst, erhältst du doppelte Zeilenumbrüche zwischen Wiederholungen. Kürze die Eingabe zuerst, wenn du saubere Trennung möchtest.
  • Unicode im Trennzeichen. Das benutzerdefinierte Trennzeichenfeld akzeptiert beliebiges Unicode; ein Emoji-Trennzeichen verkettet problemlos, rendert aber möglicherweise nicht so wie erwartet, wenn benachbarte Zeichen unbeabsichtigte Ligaturen bilden.
  • Wiederholungsanzahl von null. Die Eingabe wird auf mindestens 1 begrenzt, sodass es keine Möglichkeit gibt, eine leere Zeichenfolge zu erzeugen. Wenn du leere Ausgabe benötigst, kopiere die leere Quelleingabe.
  • Sehr kurze Eingaben mit riesigen Anzahlen. Ein einzelnes Leerzeichen 10.000 mal zu wiederholen ergibt 10 KB Leerzeichen, das leer aussieht, aber keines ist. Die Zeichenzahl-Anzeige bewahrt dich davor, das mit einer fehlerhaften Ausgabe zu verwechseln.
  • Abschließendes Trennzeichen. Das Werkzeug fügt das Trennzeichen nie nach der letzten Wiederholung an. Wenn dein nachgelagerter Konsument ein abschließendes Zeilenumbruchzeichen erwartet (manche Parser tun das), füge es manuell hinzu.

Zeichenfolgenwiederholung in ECMAScript

Die Methode String.prototype.repeat wurde in ES2015 hinzugefügt und in ECMA-262 als O(n * count)-Operation spezifiziert, obwohl die meisten Engines sie mit einer Verdoppelungsstrategie implementieren, die sich O(n log count) annähert. Vor ES2015 verwendeten Entwickler new Array(count + 1).join(str), was umständlich, aber noch funktioniert. PHP hat str_repeat, Python hat den *-Operator auf Zeichenfolgen, Ruby hat dasselbe, und Perl hat x als Infix-Operator. C-ähnliche Sprachen erfordern generell eine Schleife oder einen Bibliotheks-Helfer. Eine häufige Leistungsfalle über Sprachen hinweg: innerhalb einer Schleife eine wachsende Zeichenfolge mit += zu verketten ist quadratisch, weil jeder Schritt den gesamten Puffer kopiert. Verwende stattdessen den nativen repeat der Sprache oder einen String-Builder.

Vergleich mit Alternativen

In Bash druckt printf '=%.0s' {1..80} schnell eine Trennlinie, und yes "hallo" | head -n 1000 erzeugt 1000 Zeilen einer Phrase. Python-Einzeiler wie print("muster\n" * 1000) sind idiomatisch und schnell. Dein Texteditor hat meist eine Zeile-Vervielfältigen- oder Duplizieren-Funktion, die kleine Anzahlen handhabt. Lorem-ipsum-Generatoren geben dir zufälliges Latein für realistische UX-Mockups, während dieses Werkzeug exakte Wiederholung erzeugt, was besser zum Debuggen ist. Verwende den Web-Wiederholer, wenn du eine präzise, sichtbare, kopierfertige Ausgabe ohne das Schreiben eines Skripts oder Öffnen einer Shell möchtest - besonders nützlich, wenn das Trennzeichen nicht trivial ist oder du Zeichenzahl-Feedback in Echtzeit sehen möchtest, während du die Parameter anpasst.

Häufig gestellte Fragen

Warum gibt es eine Obergrenze von 10.000 Wiederholungen?

Weil die Ausgabe linear mit der Anzahl wächst und eine harmlos aussehende Wiederholung einer 1-KB-Eingabe bei 100.000 Durchläufen 100 MB Text erzeugt, was die meisten Browser kaum in einem Textfeld rendern können. Die Obergrenze von 10.000 hält gängige Fälle schnell und verhindert versehentliche Tab-Abstürze. Für größere Ausgaben kann ein Shell-Skript mit printf oder Pythons *-Operator problemlos Gigabytes erzeugen - verwende dieses Werkzeug für interaktive Arbeit und Skripte für Massenproduktion.

Kann ich einen Zeilenumbruch im benutzerdefinierten Trennzeichen verwenden?

Ja. Tippe \n in das benutzerdefinierte Trennzeichenfeld und das Werkzeug interpretiert es als Zeilenumbruch, sodass eine Wiederholung pro Zeile entsteht. Das Werkzeug akzeptiert auch wörtliche Zeilenumbrüche, wenn du sie aus einem anderen Textfeld einfügst. Für Tab-Trennung funktioniert \t auf dieselbe Weise, und für beliebige Zeichen kannst du sie direkt einfügen.

Wird der wiederholte Text auf einem Server verarbeitet?

Nein. Das Werkzeug verwendet Array.fill.join oder String.prototype.repeat, beides native JavaScript-Methoden, die in deinem Browser-Tab laufen. Es gibt keinen fetch-Aufruf, der deinen Text irgendwohin sendet, kein Worker-Offloading und keinen Analytics-Pixel, der die Eingabe oder Ausgabe erfasst. Das Schließen des Tabs gibt alle Zeichenfolgen zur Garbage Collection frei.

Wie genau ist die Wortzahl der wiederholten Ausgabe?

Die Wortzahl wird auf der endgültigen Zeichenfolge berechnet, indem auf dem Leerzeichen-Regex /\s+/ geteilt und die resultierenden nicht-leeren Elemente gezählt werden. Das entspricht dem Verhalten von wc -w auf Unix für ASCII-Text. Für CJK- oder Emoji-lastige Inhalte unterschätzt der Leerzeichen-Split die tatsächliche Wortzahl, weil diese Schriften Wörter nicht mit Leerzeichen trennen. Für eine graphemgenaue Zählung verwende den Zeichenlängenrechner auf dieser Website.

Warum hat die Ausgabe manchmal ein Trennzeichen weniger als erwartet?

Weil das Trennzeichen zwischen Wiederholungen gesetzt wird, nicht nach jeder. Drei Kopien von "foo" verbunden mit "-" ergibt "foo-foo-foo" mit zwei Trennzeichen, nicht drei. Wenn du ein abschließendes Trennzeichen möchtest, füge es manuell nach dem Klicken auf Kopieren hinzu oder füge das Trennzeichen in den Quelltext ein, damit es mit jeder Kopie wiederholt wird.

Kann ich damit Lorem ipsum generieren?

Du kannst einen fixen Lorem-ipsum-Absatz für Fülltext wiederholen, aber die Ausgabe sind identische Kopien statt variierter Sätze. Für realistischeren Platzhaltertext verwende einen dedizierten Lorem-ipsum- Generator, der die Satzstruktur variiert. Dieses Werkzeug ist am besten für exakte Wiederholung geeignet - zum Beispiel um eine Spaltenbreiten- grenze zu testen oder ein bekanntes Muster für Fuzzing zu erzeugen.

Was ist der Unterschied zwischen String.prototype.repeat und Array.join?

String.prototype.repeat verkettet eine Zeichenfolge count-mal ohne Trennzeichen. Array(count).fill(str).join(sep) fügt sep zwischen Kopien. Dieses Werkzeug verwendet repeat für den leeren Trennzeichen-Fall (schnellster Pfad) und die Array-join-Form, wenn ein nicht-leeres Trennzeichen benötigt wird. Beide erzeugen korrekte Ausgabe; der Unterschied liegt nur in Leistung und Lesbarkeit.

Kann ich das verwenden, um eine Zeichenfolge auf eine bestimmte Länge aufzufüllen?

Indirekt. Für einfaches Auffüllen sind String.prototype.padStart und padEnd in modernem JavaScript zweckgebaut: "42".padStart(5, "0") ergibt "00042". Wenn du nur eine Zeichenfolge aus N Kopien eines Auffüllzeichens brauchst, funktioniert der Wiederholer: setze den Text auf dein Auffüllzeichen, die Anzahl auf N und kein Trennzeichen. Für formularvalidierten Text mit fester Breite (wie das Ausfüllen einer Spalte in einem Legacy-Format) ist eine dedizierte Auffüllfunktion sauberer.

Funktioniert das Wiederholen von Emoji korrekt?

Ja. Das native String.prototype.repeat kopiert Bytes wortwörtlich, und da eine gültige UTF-16-Zeichenfolge gültig bleibt, wenn sie wiederholt wird, überleben Emoji und Mehrcodeeinheit-Zeichen. Array.prototype.join verhält sich identisch. Beide Pfade bewahren Graphem-Cluster intakt; du wirst nicht versehentlich ein Emoji über eine Trennzeichengrenze teilen, weil der Wiederholer die Eingabe als atomare Einheit behandelt.

Eignet sich das Werkzeug zum Generieren von Testvektoren für Sicherheitstests?

Ja, für einfache längenbasierte Vektoren - zum Beispiel 5000 A's, um den Puffer-Überlauf-Schutz in einem Webformular zu testen. Für gezielte Sicherheitstests solltest du Werkzeuge wie Burp Intruder, SecLists oder einen Fuzzer verwenden, der strukturierte Payloads generiert. Dieses Werkzeug füllt die Lücke, wenn du eine schnelle repetitive Zeichenfolge benötigst, ohne eine Skriptumgebung zu öffnen - sehr häufig beim Untersuchen von Rate-Limitern, Längenvalidierung oder UTF-8-Behandlung.

Verwandte Tools

Mehr Text Tools

ZeroUtil unterstützen