Можно сделать и так, решений много. Слабое место твоей проверки- ты сразу меняешь мат на звездочки, в общем случае можно сделать выбор реакции - либо менять, либо выводить предупреждение о недопустимости мата в сообщении. Кстати, наткнулся еще на одни грабли - некоторые "продвинутые" меняют русские буквы на похожие английские или заменяют "а" на @. Ругались бы наши юзеры на русском - проблем бы не было, меняешь буквы и проверяешь, но ведь они ругаются и на английском и на немецком. Можно, конечно сделать анализ слова на предмет принадлежности к русскому или какому другому языку, но можно тогда представить, во что выльется наш скрипт. Единственное оптимальное решение, которое я нашел - это в словаре нецензурных выражений тоже сразу поменять латиниские символы на кириллицу. Тогда у нас получается следующий алгоритм: получаем проверяемую строчку, копируем ее и начинаем обрабатывать: опускаем в нижний регистр, меняем латиницу на кирилицу ("a" на "а", "f" на "ф", "@" на "а" и тд) и проверяем на вхождение мата. Результат проверки может быть сообщение или сразу в исходной строке меняем на "*" . Если видишь слабые места в алгоритме - пиши...