belun.app Блог
EN

Как повторить текст X раз: разделители, переносы и ограничения

Зачем повторяют текст, как разделители и нумерация меняют результат и какие ограничения стоит знать до того, как вставить куда-то 50 000 копий.

Крупный план клавиш печатной машинки — повторитель текста, копирующий слова много раз

Впервые пара сотен копий одной строки понадобилась мне для сида базы. Нужно было описание товара такой длины, чтобы оно вылезло за ширину колонки, и стало видно, справится вёрстка карточки или поедет. Набирать «test » руками надоело копии на девятой.

Это скучная причина повторять текст. Есть и вторая: Discord, где кому-то нужно «ха» двести раз в одном сообщении.

Зачем это нужно на практике

Чаще всего — тестовые данные. Строка известной длины, чтобы проверить обрезку. Огромная ячейка, чтобы понять, скроллится таблица или режет содержимое. Абзац, которого хватит, чтобы сработало сворачивание «читать дальше». Дизайнеры делают похожее с текстом-рыбой, хотя для связного текста генератор Lorem Ipsum читается лучше, чем одно и то же предложение сорок раз подряд.

Дальше идёт всё социальное: повторённые эмодзи в комментарии, слово, растянутое на весь чат, припев с повторяющейся строчкой. Из того же набора приёмов — перевёрнутый текст: строка вверх ногами вставляется в ник или статус ровно так же, обычными символами. Часть этого — шутка, часть — спам, и граница проходит там, где её провели правила конкретного сервера.

Третья группа тише: те, кто готовит строки. Пятьдесят копий шаблонной строки, вставить в таблицу и править на месте. Когда количество должно быть точным, это быстрее, чем тянуть маркер заполнения и вглядываться в номера строк.

Разделитель решает почти всё

Здесь чаще всего и промахиваются. По умолчанию повторитель текста склеивает копии вплотную, поэтому «ха» пять раз даёт «хахахахаха». Если копии должны быть разделены, нужен вариант с пробелом, а замечаешь это обычно на одно нажатие позже — уже после вставки.

Разница между переносом строки и пустой строкой важнее, чем кажется. Один перенос ставит копии плотно, по одной на строку. Пустая строка между ними даёт абзацы — то, что нужно, когда каждая копия сама по себе предложение и вы смотрите на вертикальный ритм.

Поле своего разделителя понимает экранированные последовательности: \n даёт перенос строки, \t — табуляцию. Их можно повторять, если нужно больше воздуха: \n\n\n.

Нумерация превращает вывод в список

Отметьте «Нумеровать копии» вместе с переносом строки — и получится 1., 2., 3. сверху вниз. Я так делаю каркасы чек-листов и тестовые данные, где индекс должен быть виден внутри самой строки. Поставьте вместо переноса запятую, и та же галочка соберёт одну нумерованную последовательность в строку — иногда именно этого и ждёт шапка таблицы.

Ограничения и откуда они взялись

Потолок — 100 000 повторов или 2 000 000 символов, что наступит раньше. Это не декоративная осторожность. Текстовое поле с несколькими миллионами символов заставляет браузер пересчитывать вёрстку на каждое нажатие, и вкладка перестаёт вести себя как вкладка. Когда предел останавливает вывод, сообщение под настройками показывает, сколько копий реально поместилось.

Эмодзи считаются странно, и это не ошибка. JavaScript измеряет длину строки в кодовых единицах UTF-16, а эмодзи семьи 👨‍👩‍👧 — это три отдельных человечка, сшитых двумя невидимыми соединителями: восемь единиц на один видимый значок. Повторите его тысячу раз, и счётчик покажет 8000. Discord считает так же, поэтому сообщение «из одного эмодзи» легко оказывается сообщением на 2000 единиц.

Последнее слово за площадкой

Discord ограничивает сообщение 2000 символами и притормаживает одинаковые отправки подряд. Telegram разрешает 4096 символов в сообщении, но только 1024 в подписи к медиа. Instagram незаметно прячет комментарии из явно повторяющихся строк.

Инструмент сгенерирует всё, о чём его попросили. А доедет ли результат до адресата, решают уже чужие правила.

Нужен блок повторённого текста прямо сейчас? Повторитель текста собирает его в браузере, а если результат надо сверить с лимитом площадки, рядом лежит счётчик символов.

Попробуйте инструмент

Повторитель текста →