Seditio Source
Root |
./othercms/phpBB3/vendor/s9e/text-formatter/src/Plugins/Censor/Parser.js
var tagName  = config.tagName,
attrName = config.attrName;

matches.forEach(function(m)
{
if (isAllowed(m[0][0]))
{
return;
}

// NOTE: unlike the PCRE regexp, the JavaScript regexp can consume an extra character at the
//       start of the match, so we have to adjust the position and length accordingly
var offset = /^\W/.test(m[0][0]) ? 1 : 0,
word   = m[0][0].substring(offset),
tag    = addSelfClosingTag(tagName, m[0][1] + offset, word.length);

if (HINT.CENSOR_HAS_REPLACEMENTS && config.replacements)
{
for (var i = 0; i < config.replacements.length; ++i)
{
var regexp      = config.replacements[i][0],
replacement = config.replacements[i][1];

if (regexp.test(word))
{
tag.setAttribute(attrName, replacement);
break;
}
}
}
});

/**
* Test whether given word is allowed
*
* @param  {string}  word
* @return {boolean}
*/
function isAllowed(word)
{
return (HINT.CENSOR_HAS_ALLOWED && config.allowed && config.allowed.test(word));
}