Транслитерирование символов в рубине

У меня есть некоторые условия, которые я использую, чтобы заменить одну строку другой.

Например:

    if word == "for"
       word = "4"

Но что я действительно хочу, так это условие:

    if word == "for" || word == "FOR" || word == "For" || word == "foR" || word == "FoR" #etc etc
       word = "4"

Я не могу найти что-нибудь о том, как это сделать. Должен быть краткий способ написать это с помощью Ruby. У кого-нибудь есть предложения?

3 ответа

Решение

Ты можешь использовать casecmp сделать сравнение без учета регистра:

if word.casecmp("for") == 0
  word = "4"
end

Ты можешь использовать downcase метод:

if word.downcase == 'for'
   word = '4'
end

Я использую Regexp#=== метод.

if /\Afor\z/i === word
  word = "4"
end
Другие вопросы по тегам