cocos2d-lua敏感词过滤函数

function cc.splitStringToWords(str)
    local words = {}
    for uchar in string.gfind(str,"[%z\1-\127\194-\244][\128-\191]*") do
        words[#words+1] = uchar
    end
    return words
end

function cc.filterSensitiveWord(str)
    local filter = {
        [" "] = true,["。"] = true,[","] = true,["、"] = true,[";"] = true,[":"] = true,["’"] = true,["‘"] = true,["."] = true,[","] = true,["/"] = true,[";"] = true,[":"] = true,["'"] = true,}

    print("原字符:",str)
    local words = cc.splitStringToWords(str)
    local exist = false
    local pos = 1
    while pos <= #words do
        local tmp = pos
        local t = cc.csvData["sensitive_words"][words[pos]]
        while t ~= nil do
            if next(t) then
                tmp = tmp +1
                if filter[words[tmp]] then
                    tmp = tmp +1
                end
                t = t[words[tmp]]
            else
                print("find",pos,tmp)
                exist = true
                for i=pos,tmp do
                    if filter[words[i]] ~= true then
                        words[i] = "*"
                    end
                end
                break
            end
        end
        if tmp ~= pos then
            pos = tmp
        else
            pos = pos +1
        end
    end
    local newStr = ""
    if exist then
        for i=1,#words do
            newStr = newStr .. words[i]
        end
    else
        newStr = str
    end
    print("过滤后:",newStr)
    return newStr
end



csv = path.."config/sensitive_words.csv"
    cc.csvData["sensitive_words"] = {}
    cc.praseCSV(csv,function (idx,vals)
            local words = cc.splitStringToWords(vals["code"])
            --print("word",vals["code"],#words)
            local t = cc.csvData["sensitive_words"]
            local pos = 1
            while pos <= #words do
                if not t[words[pos]] then
                    t[words[pos]] = {}
                end
                t = t[words[pos]]
                pos = pos+1
            end
        end)
单词
code
习大大

相关文章

    本文实践自 RayWenderlich、Ali Hafizji 的文章《...
Cocos-code-ide使用入门学习地点:杭州滨江邮箱:appdevzw@1...
第一次開始用手游引擎挺激动!!!进入正题。下载资源1:从C...
    Cocos2d-x是一款强大的基于OpenGLES的跨平台游戏开发...
1.  来源 QuickV3sample项目中的2048样例游戏,以及最近《...
   Cocos2d-x3.x已经支持使用CMake来进行构建了,这里尝试...