-- censor function
do
local words = {
"fasz",
"faSzszopó",
"kurva",
"geci",
"anyád",
"köcsög"
}
local stringImpl = utf8 or string
local REPLACEMENT_CHAR = "*"
function censor(input)
if type(input) ~= "string" then
return input
end
local output = input
local haystack = stringImpl.lower(input)
for _, word in ipairs(words) do
word = stringImpl.lower(word)
local replacement = string.rep(REPLACEMENT_CHAR, stringImpl.len(word))
local start = 1
while true do
local i, j = stringImpl.find(haystack, word, start, true)
if i == nil then
break
end
start = j + 1
output = stringImpl.sub(output, 1, i - 1) .. replacement .. stringImpl.sub(output, start)
end
end
return output
end
end
-- test
do
local messages = {
"lorem",
"lorem lofasz ipsum",
"lorem ipsum kurva dolor",
"lorem geci ipsum",
"gecis lorem faSZszopó dolorem",
"lorem ipsum KuRVa AnyÁd dolor sit amet",
"KöcSöGLorem"
}
for _, message in ipairs(messages) do
print("Original:", message)
print("Censored:", censor(message))
print("================================")
end
-- Output is this:
--[[
Original: lorem
Censored: lorem
================================
Original: lorem lofasz ipsum
Censored: lorem lo**** ipsum
================================
Original: lorem ipsum kurva dolor
Censored: lorem ipsum ***** dolor
================================
Original: lorem geci ipsum
Censored: lorem **** ipsum
================================
Original: gecis lorem faSZszopó dolorem
Censored: ****s lorem ********** dolorem
================================
Original: lorem ipsum KuRVa AnyÁd dolor sit amet
Censored: lorem ipsum ***** AnyÁd dolor sit amet
================================
Original: KöcSöGLorem
Censored: ********Lorem
================================
]]
end
Replies to Re: Censor 
Title |
Name |
Language |
When |
Re: Censor |
Crys |
lua |
3 Weeks ago. |
{"text":"text","html5":"html","css":"css","javascript":"javascript","php":"php","python":"python","ruby":"ruby","lua":"lua","bash":"sh","erlang":"erlang","go":"golang","c":"c_cpp","cpp":"c_cpp","diff":"diff","latex":"latex","sql":"sql","xml":"xml","0":"text","abap":"abap","actionscript":"actionscript","actionscript3":"actionscript","ada":"ada","apache":"apache_conf","applescript":"applescript","asm":"assembly_x86","autohotkey":"autohotkey","closure":"closure","cobol":"cobol","coffeescript":"coffee","cpp-winapi":"c_cpp","c_loadrunner":"c_cpp","c_mac":"c_cpp","c_winapi":"c_cpp","csharp":"csharp","d":"d","dart":"dart","dot":"dot","eiffel":"eiffel","fortran":"fortran","groovy":"groovy","haskell":"haskell","haxe":"haxe","ini":"ini","io":"io","java":"java","java5":"java","make":"makefile","matlab":"matlab","mysql":"mysql","objc":"objectivec","ocaml":"ocaml","pascal":"pascal","perl":"perl","perl6":"perl","postgresql":"pgsql","powershell":"powershell","prolog":"prolog","properties":"properties","rails":"ruby","rust":"rust","scala":"scala","scheme":"scheme","smarty":"smarty","tcl":"tcl","vala":"vala","vb":"vbscript","verilog":"verilog","vhdl":"vhdl","yaml":"yaml"}