我在一个变量中有一个由空格分隔的名称列表,如下所示:
blacklist = "name1 name2 name3 etc"
我想要的是检查此列表中某些指定名称的存在。像
if nameInBlacklist("player_name") == true then
dosomething()
end
答案 0 :(得分:1)
如果您有一个很长的黑名单,您可以将其转换为由列表条目键入的表。可以通过字符串匹配轻松检查短黑名单:
if (" "..blacklist.." "):find( " "..player_name.." ", 1, true ) then
doSomething()
end
要查找的最后一个参数会打开find的纯字符串匹配。
答案 1 :(得分:1)
假设您要查找的名称位于字符串name
中,您可以使用:
if (" " .. blacklist .. " "):find(" " .. name .. " ", 1, true) then
-- do something
end
请注意,第四个参数true
是关闭模式匹配工具,因此name
可以包含一些需要转义的特殊字符。
如果您需要使用功能:
function nameInBlacklist(name)
return (" " .. blacklist .. " "):find(" " .. name .. " ", 1, true)
end
不要将返回值与true
进行比较,只需将其直接用作条件:
if nameInBlacklist("player_name") then
--do something
end