Files
emacs/lisp/emacs-application-framework/app/mermaid/node_modules/escaper/README.ru.md
2020-12-05 21:29:49 +01:00

4.2 KiB
Raw Blame History

Escaper

Библиотека для «экранирования» литералов строк, регулярных выражений и комментариев в синтаксисе JavaScript.

Документация на английском

NPM version NPM devDependencies Build Status Coverage Status

Поддерживаются литералы:

  • ' ... '
  • " ... "
  • ` ... `, ` ... ${...} `
  • / ... /
  • // ..., //* ..., //! ..., //# ..., //@ ..., //$ ...
  • /* ... */, /** ... */, /*! ... */, /*# ... */, /*@ ... */, /*$ ... */

Установка

https://raw.githubusercontent.com/kobezzza/Escaper/master/dist/escaper.min.js

или

npm install escaper

или

bower install escaper

или

git clone https://github.com/kobezzza/Escaper

Использование

var str = '"foo" 1 + /foo/ + 2 /* 1 */ 3',
    content = [];

// __ESCAPER_QUOT__0_ 1 + __ESCAPER_QUOT__1_ + 2 __ESCAPER_QUOT__2_ 3
str = Escaper.replace(str, true, content);

// "foo" 1 + /foo/ + 2 /* 1 */ 3
Escaper.paste(str, content);

API

Escaper.replace(str, opt_withComment, opt_content)

Заметить блоки вида ' ... ', " ... ", ` ... `, / ... /, // ..., /* ... */ на __ESCAPER_QUOT__номер_ в указанной строке и вернуть новую строку.

Аргументы

  • string str — исходная строка;
  • (Object|boolean)= opt_withCommentsOrParams = false — таблица вырезаемых последовательностей:

Если установить значение параметру -1, то последовательность будет удаляться, т.е. без возможности обратной замены, иначе true/false — включить/исключить последовательность.

{
   // Шаблон замены
  '@label'   : '__ESCAPER_QUOT__${pos}_',

  '@all'     : true, // Вырезаются все последовательности
  '@comments': true, // Вырезаются все виды комментариев
  '@strings' : true, // Вырезаются все виды литералов строк
  '@literals': true, // Вырезаются все виды литералов строк
                     // и регулярных выражений

  "'"        : true,
  '"'        : true,
  '`'        : true,
  '/'        : true,
  '//'       : true,
  '//*'      : true,
  '//!'      : true,
  '//#'      : true,
  '//@'      : true,
  '//$'      : true,
  '/*'       : true,
  '/**'      : true,
  '/*!'      : true,
  '/*#'      : true,
  '/*@'      : true,
  '/*$'      : true
}

ИЛИ если opt_withCommentsOrParams — логическое значение, то

true  // Вырезаются литералы с комментариями
false // Вырезаются одни литералы
  • Array= opt_content = Escaper.content — стек содержимого.

@return {string}

Escaper.paste(str, opt_content)

Заметить __ESCAPER_QUOT__номер_ в указанной строке на реальное содержимое и вернуть новую строку.

Аргументы

  • string str — исходная строка;
  • Array= opt_content = Escaper.content — стек содержимого;
  • RegExp= opt_rgxp — регулярное выражение для поиска, например /__ESCAPER_QUOT__(\d+)_/g.

@return {string}

Лицензия

The MIT License.