直接上代码了
-- 将字符串转换为数组
function get_split_str_list(str)
local tab = {}
for uchar in string.gfind(str, "[%z\1-\127\194-\244][\128-\191]*") do
table.insert(tab, uchar)
end
return tab
end
-- 字符替换
-- @function: 屏蔽非法字符替换为"*"
-- str 校验目标字符串
-- invalidCfg 非法字符配置 数据结构必须为set
-- repl 替换字符 默认为 "*"
function get_replace_invalid_string(str, invalidCfg, repl)
repl = repl or "*"
local changeStr = str
local spiltStr = get_split_str_list(changeStr)
for _, v in ipairs(spiltStr) do
if invalidCfg[v] then
changeStr = string.gsub(changeStr, v, repl)
end
end
return changeStr
end