Swiftにおけるテキストの全角半角変換、大文字小文字変換、頭文字のみ大文字変換の方法

入力された文字列に対して、全角半角、大文字小文字の相互変換、また頭文字だけ大文字に変換したいという状況はよくあると思います。私がよく使うParse Queryではデフォルトで大文字と小文字の判定を行わないため、結構面倒なことになったりします。例えばDBの値が「Poker」のとき「poker」で検索するとヒットしなかったりします。詳しくはわかりませんけど大文字小文字の判定するのってParse Query独自の仕様なんでしょうか。とりあえず結構困るので下記のようなメソッドを用意して適宜変換して対応することにします。(Swift2.x系で動作確認)

入力された文字をすべて大文字に変換する

入力された文字をすべて小文字に変換する

半角文字を全角文字に変換する

全角文字を半角文字に変換する

入力された単語の先頭だけ大文字にする

ひとつひとつ指定して変換するのも面倒なのでその場合は、こういう風にメソッドをまとめてしまって結果を配列で受け取ると便利です。受け取った内容ごとにOR条件で検索をかけてあげれば結構ゆるい感じの結果が返ってくると思います。

まとめてみる

実際に実行するとこうなります

texasHold’emPoker
texasHold’emPoker
texasHold'emPoker
TEXASHOLD’EMPOKER
texashold’empoker
TEXASHOLD'EMPOKER
texashold'empoker
TexasHold’emPoker
TexasHold'emPoker

このくらいのパターンを網羅すればユーザの入力値の揺れにも対応出来るかなと思います。

返信を残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です