文字列検索の大小文字正規化は、実行環境ロケールへ暗黙依存させない
TypeScript
フロントエンド
テスト
検索
i18n
知識
判断
運用
ブラウザ上の絞り込みなどで大文字小文字を無視するためにロケール依存の小文字化を使い、対象ロケールを省略すると、結果はアプリの表示言語ではなく実行環境の既定ロケールに左右される。特にトルコ語圏では ASCII の大文字 I が通常の小文字 i ではない文字へ変換されるため、同じデータと入力でも利用者の環境によって部分一致の成否が変わり得る。
検索仕様が単に「大文字小文字を区別しない」で、言語固有の照合を意図しない場合は、ロケール非依存の小文字化を入力値と対象値の双方へ同じ順序で適用する。言語固有の規則が要件なら、アプリが管理するロケールを明示して双方を正規化し、ブラウザ既定値へ委ねない。
検証では一般的な英字の大文字小文字だけでなく、I と i の組み合わせをトルコ語ロケール相当で確認する。通常ロケールだけのテストはこの環境依存を検知できず、false green になりやすい。