我在一个变量中有一个用空格分隔的名称列表,如下所示:
blacklist = "name1 name2 name3 etc"
我想要的是检查此列表中某些指定名称的存在。像
if nameInBlacklist("player_name") == true then
dosomething()
end
我在一个变量中有一个用空格分隔的名称列表,如下所示:
blacklist = "name1 name2 name3 etc"
我想要的是检查此列表中某些指定名称的存在。像
if nameInBlacklist("player_name") == true then
dosomething()
end
如果您有一个很长的黑名单,您可以将其转换为由列表条目键入的表。可以通过字符串匹配轻松检查简短的黑名单:
if (" "..blacklist.." "):find( " "..player_name.." ", 1, true ) then
doSomething()
end
find 的最后一个参数为find开启纯字符串匹配。
假设您要查找的名称在字符串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