String “从表中查找字符串中的字母”仅适用于第一项

String “从表中查找字符串中的字母”仅适用于第一项,string,lua,find,lua-table,String,Lua,Find,Lua Table,嗨,没有lua代码我无法解释 问题是它只是捕获表的第一项 如果我写了te=“f…you”,它将返回true,但如果我写了te=“a…”,它将返回false-_- 我只是想从字符串中找出不好的单词,下面是代码 *对不起,我只是没有写完整 local te=“f…你” 坏话={ “f…”, “a…”, “s…”, “b…”, “g…”, “w…”, } 以及功能: function isTextContainsBadwords(str) for i,v in ipairs(badwords)

嗨,没有lua代码我无法解释 问题是它只是捕获表的第一项 如果我写了te=“f…you”,它将返回true,但如果我写了te=“a…”,它将返回false-_-

我只是想从字符串中找出不好的单词,下面是代码 *对不起,我只是没有写完整

local te=“f…你”
坏话={
“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)))

这是因为当您迭代表
badwords
时,表中的第一个字符串
“f...”
a..
不匹配,否则块中有一个
返回false
;它终止代码的执行

这里不需要
else
块。只需将
returnfalse
置于
for
循环之外即可

function isTextContainsBadwords(str)
    for i,v in ipairs(badwords) do
        if str:find(v) then
            return true
        end
    end
    return false
end

啊,我没注意到这一点,非常感谢^^食梦者^^