Экранирование строк

Экранируем текст для HTML, XML, JSON, JavaScript, URL, Base64, ячейки CSV, строки SQL и регулярного выражения — и раскодируем обратно. Замечаем двойное экранирование, сверяем результат с исходником. Текст не покидает браузер.

Экранирование превращает служебные знаки в безопасную запись: в HTML знак «меньше» становится <, в JSON перенос строки — \n, в адресе кириллица — %D0%BA. Раскодирование возвращает всё обратно. Режим выбирается по тому, куда текст пойдёт: в разметку, в код, в адрес, в таблицу.

После каждого преобразования результат раскодируется обратно и сверяется с исходником до знака. Если не сошлось, об этом сказано прямо.

Режимы

  • HTML: пять служебных знаков, а раскодирование понимает все именованные сущности, включая   и —;
  • XML: только пять сущностей,   здесь нет;
  • JSON и JavaScript: содержимое строкового литерала, кавычки по желанию, не-ASCII по желанию как \u0430;
  • ячейка CSV: кавычки вокруг, если внутри разделитель, кавычка или перенос строки, кавычка внутри удваивается;
  • строка SQL: апостроф удваивается. Это не замена параметрам запроса: от подстановки значений в текст лучше уходить вовсе;
  • регулярное выражение: точка, скобки, звёздочка и прочие служебные знаки получают обратную косую черту.

Текст остаётся в браузере

Экранируют и токены, и пароли, и куски чужих писем. На сервер ничего не уходит: преобразование и сверка считаются на вашей стороне.

Другие инструменты