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; } };