Библиотека для «экранирования» литералов строк, регулярных выражений и комментариев в синтаксисе JavaScript.
Поддерживаются литералы:
' ... '" ... "` ... `, ` ... ${...} `/ ... /// ..., //* ..., //! ..., //# ..., //@ ..., //$ .../* ... */, /** ... */, /*! ... */, /*# ... */, /*@ ... */, /*$ ... */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);
Заметить блоки вида ' ... ', " ... ", ` ... `, / ... /, // ..., /* ... */ на
__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_QUOT__номер_ в указанной строке на реальное содержимое и вернуть новую строку.
Аргументы
string str — исходная строка;Array= opt_content = Escaper.content — стек содержимого;RegExp= opt_rgxp — регулярное выражение для поиска, например /__ESCAPER_QUOT__(\d+)_/g.@return {string}
The MIT License.