mirror of
https://github.com/discourse/discourse.git
synced 2025-02-11 22:44:14 +08:00
26 lines
800 B
JavaScript
26 lines
800 B
JavaScript
Discourse.CensoredWords = {
|
|
censor: function(text) {
|
|
var censorRegexp,
|
|
censored = Discourse.SiteSettings.censored_words;
|
|
|
|
if (censored && censored.length) {
|
|
if (!censorRegexp) {
|
|
var split = censored.split("|");
|
|
if (split && split.length) {
|
|
censorRegexp = new RegExp("\\b(?:" + split.map(function (t) { return "(" + t.replace(/[-/\\^$*+?.()|[\]{}]/g, '\\$&') + ")"; }).join("|") + ")\\b", "ig");
|
|
}
|
|
}
|
|
if (censorRegexp) {
|
|
var m = censorRegexp.exec(text);
|
|
while (m && m[0]) {
|
|
var replacement = new Array(m[0].length+1).join('■');
|
|
text = text.replace(new RegExp("\\b" + m[0] + "\\b", "ig"), replacement);
|
|
m = censorRegexp.exec(text);
|
|
}
|
|
|
|
}
|
|
}
|
|
return text;
|
|
}
|
|
};
|