从表格中查找字符串中的字母仅适用于第一项。

嗨,我没有 Lua 代码无法解释这个问题,问题是它只捕获表中的第一项,如果我写 te = "f... you" 它将返回 true,但如果我写,te = "a..",它将返回 false -_-

我只是试图从字符串中捕获不良单词,这是代码

\*对不起,我只是没有完全写出这些不良词语

local te = "f... you"
badwords = {
"f...",
"a..",
"s...",
"b....",
"g..",
"w....",
}

并且函数:

function isTextContainsBadwords(str)
  for i,v in ipairs(badwords) do
    if str:find(v) then
      return true
    else
      return false
    end
  end
end
print(tostring(isTextContainsBadwords(te)))
点赞
用户1190388
用户1190388

这是因为当遍历表badwords时,它里面的第一个字符串"f..."并不匹配a..,在else块中有一个return false,它会终止代码的执行。

在那里你不需要一个else块。只需要将return false移到for循环外面。

function isTextContainsBadwords(str)
    for i,v in ipairs(badwords) do
        if str:find(v) then
            return true
        end
    end
    return false
end
2013-03-25 01:48:26