27 lines
755 B
JavaScript
27 lines
755 B
JavaScript
(function() {
|
|
var EscapeStore = require('./escape-store');
|
|
var QuoteScanner = require('./quote-scanner');
|
|
|
|
var Free = function Free() {
|
|
this.matches = new EscapeStore('FREE_TEXT');
|
|
};
|
|
|
|
// Strip content tags by replacing them by the a special
|
|
// marker for further restoring. It's done via string scanning
|
|
// instead of regexps to speed up the process.
|
|
Free.prototype.escape = function(data) {
|
|
var self = this;
|
|
|
|
return new QuoteScanner(data).each(function(match, store) {
|
|
var placeholder = self.matches.store(match);
|
|
store.push(placeholder);
|
|
});
|
|
};
|
|
|
|
Free.prototype.restore = function(data) {
|
|
return data.replace(this.matches.placeholderRegExp, this.matches.restore);
|
|
};
|
|
|
|
module.exports = Free;
|
|
})();
|