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