“Lua find”\x";在球员的名字里

“Lua find”\x";在球员的名字里,lua,Lua,我服务器上的玩家在他的名字上加入了Emojis,这是不允许的,我试图创建一个if检查,但它不能正常工作 if string.find(playerName, "%^") or string.find(playerName, '%\') then deferrals.done("Por favor, elimine sus emojis y códigos de color de su nombre.") end 语法突出显示已经告诉您出了什么问题:\在Lua中用作转义字符,因此它后面的

我服务器上的玩家在他的名字上加入了Emojis,这是不允许的,我试图创建一个if检查,但它不能正常工作

if string.find(playerName, "%^") or string.find(playerName, '%\') then
    deferrals.done("Por favor, elimine sus emojis y códigos de color de su nombre.")
end

语法突出显示已经告诉您出了什么问题:
\
在Lua中用作转义字符,因此它后面的
'
不会关闭字符串,而该字符串将一直持续到代码中的下一个
'
smoewhere。如果您想要一个
\
,请使用
\

如果playerName:find(“%^”)或playerName:find(“%\\”),则
延期。完成(“请帮我一个忙,我的表情和名字的颜色。”)
结束

顺便说一下;如果在搜索中不需要模式,可以通过将
false
作为第二个参数传递给
string.find
来禁用它们:

如果playerName:find([[^]],1,false)或playerName:find([\]],1,false),则
延期。完成(“请帮我一个忙,我的表情和名字的颜色。”)
结束


为了以防万一,试着在条件中添加一个
或true
,这样所有玩家的名字都会被激活;这样,您就可以知道是条件本身失败了,还是if块中的代码失败了。

谢谢您的回复,但我已经测试过了,我需要检查playername是否包含“\x”,因为表情符号就是这样开始的,与\x@EnzoGiova尝试将玩家名称写入一个文件或控制台,以确保Lua确实以这种方式获取玩家名称;Lua可能已经为表情符号获取了带有unicode字符的字符串。