maksam07 Posted October 4, 2015 Share Posted October 4, 2015 (edited) Есть ли в луа функция, которая будет проверять слово игнорируя регистр букв? То бишь берем слово "привет", и в проверке "Привет", "привет", "ПРИвет" и т.д. функция будет возвращать true? Не знаю как лучше объяснить, но надеюсь кто-то меня поймет. Edited October 4, 2015 by Guest Link to comment
Kenix Posted October 4, 2015 Share Posted October 4, 2015 Совсем недавно были добавлены функции для работы с юникодом viewtopic.php?f=141&t=38632&p=787060#p787060 Ты можешь составить массив слов и использовать функцию utf8.lower(). local aWords = { "привет", "пока" }; local sInputWord = "ПРивет"; sInputWord = utf8.lower( sInputWord ); for i, sWord in ipairs( aWords ) do if sInputWord == sWord then outputDebugString( "Found" ); break; end end outputDebugString( "Not Found" ); Link to comment
Other Languages Moderators Disinterpreter Posted October 4, 2015 Other Languages Moderators Share Posted October 4, 2015 а может юзать preg? Link to comment
maksam07 Posted October 4, 2015 Author Share Posted October 4, 2015 а может юзать preg? pregFind? Он же регистр соблюдает. Или о чем ты? Link to comment
maksam07 Posted October 5, 2015 Author Share Posted October 5, 2015 Kenix, сделал код по твоему примеру, но оно выводит Not Found. Разве так и должно быть? local aWords = { "Привет", "Пока" }; function comm ( playersource ) local sInputWord = "ПРивет"; sInputWord = utf8.lower( sInputWord ); for i, sWord in ipairs( aWords ) do if sInputWord == sWord then outputDebugString( "Found" ); break; end end outputDebugString( "Not Found" ); end addCommandHandler ( "qq", comm ) Link to comment
Kenix Posted October 5, 2015 Share Posted October 5, 2015 Все слова в массиве с маленькой буквы сделай, мой недочет. Link to comment
Other Languages Moderators Disinterpreter Posted October 6, 2015 Other Languages Moderators Share Posted October 6, 2015 а может юзать preg? pregFind? Он же регистр соблюдает. Или о чем ты? Link to comment
maksam07 Posted October 6, 2015 Author Share Posted October 6, 2015 Кениксу спасибо большое за помощь. Смог написать антимат на сервер, не самый конечно хороший, но все же Теперь в чат выводятся сообщения формата: "ты [оск] [оск], понял??7" Так же эта функция работает и для англ слов, что очень хорошо. Не каждая такое может (работать и с русскими и англ символами) Link to comment
Elengar Posted October 6, 2015 Share Posted October 6, 2015 Так же эта функция работает и для англ слов, что очень хорошо. Не каждая такое может (работать и с русскими и англ символами) Каждая функция, которая предназначена для работы с кодировкой, где есть поддержка каких-либо символов, может работать с ней. В uft-8 есть русские и английские символы, и, значит, каждая uft-8 функция должна уметь работать с ними. Link to comment
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now