JSFiddle - React, Tailwind, and code Playground
by Kstein
HTML
<HTML>
<BODY>
водостока<br>
папками<br>
<br>
потоку<br>
руками
</BODY>
</HTML>
JavaScript
window.onload = function() {
s = document.body.innerHTML;
let regularBadWordsArrayWithExceptions = [
'ток',
'кам'
];
let ExceptionsArray = [
'поток',
'рукам'
];
for (let i = 0; i < regularBadWordsArrayWithExceptions.length; i++) {
let regularBadWordWithExceptions = new RegExp(
'\\B' + '[а-яА-Я]*' + regularBadWordsArrayWithExceptions[i] + '[а-яА-Я]*' + '\\B',
'gi'
);
// Регулярное выражение для исключений
for (let j = 0; j < regularBadWordsArrayWithExceptions.length; j++) {
let regularException = new RegExp(
ExceptionsArray[j],
'gi'
);
// Если исключение содержится в слове
if (regularException.test(regularBadWordWithExceptions)) {
continue;
} else {
// Если не содержится
s = s.replace(regularBadWordWithExceptions, function(m) {
let rbwWEFirstLetter = m[0];
let rbwWELastLetter = m[m.length - 1];
return m[0] + '*'.repeat(m.length - 2) + m[m.length - 1];
})
}
};
};
// Main Exceptions cycle
document.body.innerHTML = s;
};