Od kilku dni szukam skryptu, który cenzurowałby wulgaryzmy w komentarzach. Problem w tym, że komentarze dodają się do bazy i wyświetlają za pomocą jquery (bez przeładowania strony).
W moich poszukiwaniach znalazłem taki oto skrypt:
<html> <head> <script> function censor(str){ //STRING VARIABLE FROM <input> TAG var list = ['ass', 'bitch', 'damn', 'fuck', 'shit']; //ARRAY OF WORDS TO CENSOR //REPLACES EVERY WORD IN 'list' WITH THE FIRST LETTER AND ASTERICKS for(i=0; i<list.length; i++){ c = list[i]; //WORD IN THE ARRAY fl = c[0]; //FIRST LETTER astr = '****'; censored = fl+astr; //CENSORED WORD Ex: (f***) str = str.replace(c, censored); //CENSORING PROCESS HERE } $("#censored").html(str); //DISPLAYED IN HTML } </script> </head> <body> </body> </html>
Źródło: http://wcetdesigns.com/tutorials/2012/02/1...nsor-words.html
W tym skrypcie pojawiają się 3 problemy:
1) Dosłowna zmiana ciągu znaków: Jak zauważyliście, przyjąłem, że słowo 'kot' i 'raz' są brzydkimi wyrazami, więc wpisując 'kot' otrzymamy wynik 'k****'. Niestety wpisując np. 'Palikot' otrzymamy 'Palik****' .
2) Wielkość liter ma znaczenie: Dla tego skryptu wyrazy 'kot' i 'KOT' są różnymi wyrazami, jak to zmienić?
3) Zmiana tylko jednego wyrazu: Po wpisaniu więcej niż jednego tego samego brzydkiego wyrazu wynik jest następujący => k**** kot kot kot
Jeśli mielibyście chwilę i chęć na pomoc byłbym wdzięczny.