Тема: AHK: Определение регистра русского символа
Доброго времени суток.
Обрезаю 1 символ через SubStr, как можно определить является он заглавной буквой или строчной(русский алфавит).
Заранее спасибо.
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Доброго времени суток.
Обрезаю 1 символ через SubStr, как можно определить является он заглавной буквой или строчной(русский алфавит).
Заранее спасибо.
Для латинских букв есть команда IF var is upper.
Для русских наверное нужно в RegEx задать диапазон [А-Я,Ё].
var:=А
if RegExMatch(var, "[А-Я]")
msgbox, 1
попробовал так, не работает
var:=А
После этой строчки проверьте в MsgBox, что у вас находится в переменной var.
забыл "", спасибо, работает.
var := "Ё"
MsgBox % var ~= "[А-ЯЁ]"
А шо ж вы ё забыли?
А где же секта поклонников заковыристых регексов, никак в отпуске?
v := "Ё"
MsgBox % RegExMatch(v, "\p{Lu}")
MsgBox % v ~= "\p{Lu}"
Пишу из отпуска:
MsgBox, % "Ё" ~= "(*UCP)[[:upper:]]"
По-простому:
MsgBox % IsUpper("ё")
MsgBox % IsUpper("Ё")
IsUpper(s) {
local t
StringUpper t, s
return s == t
}
local здесь не нужно.
Нужно, по хорошему.
http://forum.script-coding.com/viewtopi … 29#p105029
Только с недавнего времени можно не перечислять имена после local.
На случай, если t задана суперглобальной? Ну так это дурной тон, этак "защит от дурака" не напасёшься. В крайнем случае просто local.
Почему дурной тон, делаешь функции, а "дурак" их вставляет в свой 10к+ супер код, а потом попробуй найди что у него с чем перехлестнулось.
В крайнем случае просто local.
Я и говорю, но только с недавнего времени, до v1.1.27 скрипт даже не запустится.
Я считаю что есть этот local, даже вне контекста, и пускай будет.
StringCaseSense Locale
Я тоже об этом раньше знал, да забыл.
Вот если убрать "не", тогда все сходится. Очепятка?
Да и так вроде сходится. Локаль используется, чтобы определить, какие буквы различаются только регистром.
Т.е. такое свойство буквы, как регистр, для неанглийских определяется только через локаль.
Malcev, каким образом вышли на этот прием?
Просто в памяти отложилась эта команда еще со времен прочтения русской справки.
Malcev пишет:StringCaseSense Locale
Я тоже об этом раньше знал, да забыл.
Я тоже.
http://forum.script-coding.com/viewtopi … 016#p90016
Про него все забывают.
Может, теперь запомним.
Обязательно запомним, но ненадолго. Статистика уже есть.
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться