VDS Хостинг для Ваших проектов

Замена текста онлайн OTRT

Сентябрь 23rd, 2015 Рубрики: Он-лайн

В одном из предыдущих постов я описывал программу uvFilesCorrector, предназначенную для замены текста в файлах. Задача довольно рутинная, однако достойных полноценных инструментов почти нет, либо они платные. Что касается uvFilesCorrector, то эта программа бесплатная, но имеются проблемы работы с кодировками. Хорошо замена работает только в ANSI-файлах с кодировкой Windows-1251. Производя поиски альтернатив я ничего толкового не нашёл и среди онлайн инструментов. На одном сайте был такой инструмент, но можно было произвести только одну замену и только в одном тексте. Так что я поставил себе задачу написать самому онлайн инструмент для замены текста, который бы предоставлял гораздо больше возможностей, фактически максимально что можно выжать из предлагаемых Javascript средств.

Итак, вкратце, какие возможности предлагает данный инструмент:

  • Замена введённого текста и получение результата в другом поле. Максимальный размер текста (2 миллиона символов).
  • Применение списка замен (неограниченно). Также применяемый список можно экспортировать/импортировать, чтобы работать в любое время.
  • Преобразование текста к кодировке UTF8, что позволяет обрабатывать тексты на разных языках.
  • Поиск как обычного текста так и регулярных выражений.
  • Работа со специальными символами в виде ESC-последовательности с указанием числового кода.
  • Замена текста из файлов с возможностью указания исходной кодировки.

Вместе с тем OTRT имеет и свои недостатки:

  • Медленная работа. Подвисание браузера во время обработки больших текстов/большого количества замен. Именно поэтому я задал ограничение на 2 миллиона символов.
  • Выходная кодировка (если сохраняете файлы) всегда UTF8 независимо от исходной.
  • Работа с файлами доступна не во всех браузерах, по крайней мере сохранение может быть очень неудобным, или вообще неработоспособным.

Интерфейс OTRT

Я пытался сделать максимально простой и интутивно понятный интерфейс. Основные элементы и их назначение указаны на рисунке. Но некоторые особенности рассмотрю подробнее.

интерфейс otrt инструмента замены текста нлайн

В самом верху страницы есть поле для выбора файлов на вашем компьютере, в которых надо заменить текст. Также рядом есть поле для выбора кодировки этих файлов. Если кодировка разная, то придётся обрабатывать каждую порцию файлов отдельно. Если ваш браузер не поддерживает возможность чтения файлов (HTML5 FileReader), то на этом месте будет соответствующее сообщение. Поддерживаемые браузеры: Chromium 25+ (и все на его движке), Firefox 13+, Opera 12+.

В центре расположены два текстовых контейнера: в первое вводите/вставляете текст, в котором надо произвести замены. В поле ниже (доступно только для чтения) – будет результат, т.е. текст в котором произведены указанные замены.

Сами замены задаются в виде списка в текстовых полях справа (можно добавить сколько нужно). Каждая замена задаётся в виде пары "искомое значение"-"новое значение". Если этот список у вас большой и надо будет ещё проводить такие же замены в будущем, то рекомендую экспортировать его в формате JSON с помощью одноименной кнопки и сохранить в текстовом файле или в заметках браузера. А в будущем импортировать его одним нажатием кнопки, чтобы не вводить каждый раз одно и то же.

Параметры OTRT

С помощью переключателя можно выбрать режим поиска обычного текста и регулярных выражений. Если вы не знаете, что такое регулярные выражения, то выбирайте обычный текст. Что касается заменяющей строки, что в ней надо учитывать символ $. В связи с использованием для замены стандартного метода Javascript объекта String.replace, то некоторые комбинации $ имеют специальное значение (кто знаком с регулярными выражениями – знает):

  • $$ – Вставляет сам $. Для примера из рисунка будет: Это $ текст
  • $& – Вставляет искомый текст. Для примера из рисунка будет: Это исходный текст
  • $` – Вставляет что до искомого текста. Для примера из рисунка будет: Это Это текст
  • $’ – Вставляет что после искомого текста. Это текст текст
  • $1..$9 – Вставляет найденное в соответствующих скобках.

Флажок ESC-последовательности позволяет использовать последовательности в виде \xHH \uHHHH в заменяющем тексте для указания разных символов, которые не вводятся из клавиатуры. Но такие последовательности поддерживаются только в виде цифр. Если надо ввести символ новой строки, то надо писать \x0A а не \n.

Фактически и обычный текст при поиске приводится к регулярным выражениям для возможности использования найденных последовательностей. Что касается самих регулярных выражений, то обрамлять их в / / не надо. Также не поддерживаются модификаторы (по-умолчанию используется только g)

Сохранение файлов

Автоматизированное сохранение изменённых файлов работает только в браузерах на движке Хромиум. Файлы с изменённым текстом (но в кодировке utf8) будут сохранены автоматически в заданную настройками браузера папку. В браузере Firefox потребуется разрешить обязательно всплывающие окна, так как каждый файл будет открыт на новой вкладке как blob-объект. Браузер Opera не поддерживает полностью Blob технологии, поэтому в нём генерируются ссылки с протоколом data: по которым можно сохранить результаты. Поэтому если у вас много файлов, рекомендую использовать Хромоподобные браузеры для автоматизированного сохранения.

Ну и напоследок хочу сказать, что инструмент работает исключительно на Javascript, ваш текст и файл никуда не отправляются и видны только вам. Никакой слежки не производится и можно работать при отключенном интернете. Пользуясь этим инструментом вы тем самым принимаете условия лицензии указанные внизу страницы.

Вопросы, замечания, пожелания оставляйте в комментариях к этому посту. Надеюсь, что OTRT станет для вас полезным инструментом замены текста онлайн и если сочтёте его достойным внимания, не забывайте поделиться с друзьями в соцсетях.

OTRT перейти к инструменту
Понравился пост? Поделись с другими!
Теги: , , ,

Есть 14 коммент. к “Замена текста онлайн OTRT”

  1. Валерий
    Декабрь 16th, 2016 at 10:00
    1

    Отличный сервис…! Но…

    В Safari на iPad в нижнем окне результата замены не работает метод «Выделить все» для тапа. Забрать результат не получается! Пробовал все 5 доступных на планшете других браузеров, включая Хром. Придётся теперь искать Windows-машину, чтобы сделать вторую попытку.
    Если сделаете указанный метод, будет полный кул!

    • Декабрь 18th, 2016 at 20:49
      2

      Хм, не могу тестировать на iPad, но по ходу проблема не в браузерах а именно в планшете. Не знаю где может быть проблема. Попробуйте в таком режиме как тут.

  2. Валерий
    Декабрь 25th, 2016 at 14:50
    3

    То есть на винде у Вас всё нормально с «Выбрать всё» в поле «Результат»?

  3. Валерий
    Декабрь 25th, 2016 at 14:58
    4

    Почему-то коммент обрезается после первой строки… (?!)
    То есть на винде у Вас всё нормально с «Выбрать всё» в поле «Результат»?
    Спасибо за совет…, но:
    _. мне известен предложенный Вами способ решения проблемы, хотя раньше я считал это странной «проблемой» недостатка памяти (при моих-то 128 GB), ну да ладно…;
    _. режим «Reader» поддерживается далеко не всеми сайтами, и сайт обсуждаемого ресурса также его не поддерживает;
    _. я так и пользуюсь здесь выделением через метод «Выбрать», причём без перехода в «Reader», но текст большой и ”захват“ часто ”срывается“ – почему я и оставил коммент;
    _. но, самое главное, почему верхнее поле «Исходный текст» поддерживает в iOS/Safari метод «Выбрать всё», в то время, как нижнее «Результат» нет?!
    Можете ли сказать, в каких браузерах на винде Вами проверен этот «глюк» и где он заведомо отсутствует?
    P. S. Странно, но здешняя система обрезает текст комментария после первой строки……

    • Декабрь 29th, 2016 at 20:07
      5

      Да, в винде всё отлично выделяет и по контекстному меню и по Ctrl+A. Во всех браузерах нет никаких глюков: Chrome, OPera.

      самое главное, почему верхнее поле «Исходный текст» поддерживает в iOS/Safari метод «Выбрать всё», в то время, как нижнее «Результат» нет?!

      Разница между полями только в том, что нижнее доступно только для чтения, больше никакой. Возможно из-за этого.
      Я сделал, чтобы в iOS при фокусе на результате автоматически выделялось всё. Может будет лучше так.

  4. Валерий
    Декабрь 25th, 2016 at 15:03
    6

    Сорри, освежил память…
    В проблемном окне вообще не поддерживается контекстное меню с методами!
    Выделяю простым тапом и раздвигаю границы, что весьма напряжно для 100 кб текста!

  5. Валерий
    Январь 11th, 2017 at 01:14
    7

    Валерий пишет (11.0.2017 в 6:11):
    Спасибо за внимание к моему фидбэку!
    Только сейчас увидел ответ, когда занялся рефакторингом.
    К сожалению, ситуация не улучшилась!
    Теперь оба окошка мигают и… остаются с тем же функционалом, что и раньше.
    В верхнем окне даже стало, кажется, хуже – не сразу нужное контекстное меню появляется.
    В таком случае лучше сделать откат, если Вы оба допиливали…
    Есть мысль протестить на самой последней версии iOS, может там получится.
    У меня 8.3… Как получится, сообщу Вам ответ!
    В любом случае спасибо

  6. Валерий
    Январь 11th, 2017 at 02:14
    8

    Есть конгениальная идея!

    Открыть второе окно для записи!
    Кому это помешает? Да никому, зато у айпадников проблемы закончаться…
    150 К кода осторожно «наматывать», всякий раз рискуя потерять выделение, пока домотаешь до конца файла – то ещё ”удовольствие“!

  7. Валерий
    Январь 15th, 2017 at 10:23
    9

    Класс!

  8. Валерий
    Январь 15th, 2017 at 10:27
    10

    Всё забываю, что форма не поддерживает смайлы и обрезает на них остальной текст! ;(
    И приходится перебивать текст повторно.

    Спасибо большое за второе окно! :)
    Эх, сколько нервов и сил было потрачено за прошедший месяц! ;(((
    Но лучше поздно…, чем никому! ;)))

    • Январь 15th, 2017 at 21:28
      11

      Пожалуйста. Остаётся сочувствовать яблочникам ;) Кстати проблема, которую Вы испытали уже была выявлена: упоминается здесь и здесь и касается именно iOS. В последнем случае поддержка вежливо показала, что им наплевать на глюки своих продуктов и страдания пользователей. Так что самая гениальная идея – достать разработчиков, чтобы сделали наконец-то что-то полезное.
      P.S. У меня форма не обрезает строки, а смайлы – Вы вон сколько наставили! :)

  9. Валерий
    Январь 16th, 2017 at 03:43
    12

    Спасибо за линки!
    «Я буду участвовать!» © ;)

    Мне с ними не в первой бодаться, просто сначала нужно обновиться, а это – целая история для меня… после двух «залётов» «по воздуху».
    Чур меня, чур после этого! ;(
    Вот жду времени и оказии с кабелем.

    Я имел ввиду смайлы яблочные!

    P. S. Сейчас заглянул в поисках фичи конверсии регистра…

  10. Валерий
    Февраль 21st, 2017 at 00:26
    13

    Пытаюсь заменить одну строку кода на три строки, где, естественно присутствуют два символа переноса строки.
    Помнится, месяца полтора назад делал аналогичную операцию с добавленим строк…, но сейчас не могу повторить её почему-то – не могу подобрать этот злополучный символ переноса строки. Хотя, возможно, в прошлый раз дело пошло через правильную настройку опций «регулярное выражение/ESC-последовательность и \x0A.
    Но сегодня никак не могу получить три строки вместо одной, получается одна, но длинная!
    В чём может быть проблема? Как быть?

    • Валерий
      Февраль 21st, 2017 at 00:35
      14

      Вопрос снят!
      Чудес не бывает…
      Аккуратность регает все вопросы! ;)))

Написать комментарий

   b2bbonbone