JavaScript | 基礎構文:文字列操作 – 大文字小文字変換

JavaScript JavaScript
スポンサーリンク

初心者向け:大文字小文字変換の基本

文字列の「大文字・小文字」を変えるときは、まず toUpperCase()toLowerCase() を覚えれば十分です。見た目を整えたり、大小文字を無視した比較に使います。


よく使うメソッド

  • 大文字にする:
"hello".toUpperCase(); // "HELLO"
JavaScript
  • 小文字にする:
"JavaScript".toLowerCase(); // "javascript"
JavaScript
  • 配列の文字列をまとめて変換:
["a", "B", "c"].map(s => s.toUpperCase()); // ["A","B","C"]
JavaScript

大小文字を無視した比較(検索・同値判定)

  • 等価比較(同じ文字列か):
const a = "Tokyo";
const b = "TOKYO";
const equalIgnoreCase = a.toLowerCase() === b.toLowerCase(); // true
JavaScript
  • 部分一致(含むか):
const text = "I love TOKYO!";
const q = "tokyo";
const found = text.toLowerCase().includes(q.toLowerCase()); // true
JavaScript
  • ソートを大小文字無視で安定化(簡易):
const names = ["alice","Bob","carol"];
names.sort((x, y) => x.toLowerCase().localeCompare(y.toLowerCase()));
JavaScript

先頭だけ大文字(キャピタライズ)

  • 単語の先頭1文字を大文字に:
function capitalize(word) {
  if (!word) return word;
  return word[0].toUpperCase() + word.slice(1).toLowerCase();
}
capitalize("jAVa"); // "Java"
JavaScript
  • 文章の各単語をキャピタライズ(単純版):
function capitalizeWords(s) {
  return s
    .split(/\s+/)
    .map(w => w ? w[0].toUpperCase() + w.slice(1).toLowerCase() : w)
    .join(" ");
}
capitalizeWords("hello WORLD from js"); // "Hello World From Js"
JavaScript

注意: 英語の厳密なタイトルケース(前置詞などを小文字にする)はルールが複雑で、単純化では完全一致になりません。


ロケール対応(言語のルールに合わせて変換)

  • ロケール付き変換:
"istanbul".toLocaleUpperCase("tr"); // トルコ語の大文字化(i の扱いが変わる)
"İSTANBUL".toLocaleLowerCase("tr");
JavaScript
  • いつ使うか: 言語ごとの大小文字ルール(トルコ語の i など)を正確に扱いたい場合。通常は toUpperCase / toLowerCase で十分。

正規表現と組み合わせ(置換しながら整形)

  • 文の先頭を大文字に:
const s = "hello. how are you? fine!";
const fixed = s.replace(/(^\w|\.\s+\w|\?\s+\w|\!\s+\w)/g, m =>
  m.toUpperCase()
);
// ざっくり文章先頭を大文字化(簡易)
JavaScript
  • 特定の部分だけ小文字化:
"ID:ABC123".replace(/[A-Z]+/g, m => m.toLowerCase()); // "ID:abc123"
JavaScript

よくあるつまずきと注意点

  • 大文字・小文字を無視した比較は、両方を同じ方向に変換してから行う。
  • Unicodeの複合文字や絵文字は、単純に word[0] では1文字を正しく取れないことがある。
    • 対策(高度):Array.from(word) を使って見た目の1文字単位にする。
  • ロケール依存の文字(例:トルコ語の i)は toLocaleUpperCase/LowerCase を検討。
  • タイトルケースの厳密化は難しい。簡易ルールで十分か、ライブラリ利用を検討。

ミニ練習

  • 問1: “Hello WORLD” をすべて小文字にして表示せよ。 onsole.log("Hello WORLD".toLowerCase()); // "hello world"
console.log("Hello WORLD".toLowerCase()); // "hello world"
JavaScript
  • 問2: “banana” の先頭を大文字にせよ。
const s = "banana";
console.log(s[0].toUpperCase() + s.slice(1)); // "Banana"
JavaScript
  • 問3: 大文字小文字を無視して “JavaScript” と “javascript” が同じか判定せよ。
const a = "JavaScript", b = "javascript";
console.log(a.toLowerCase() === b.toLowerCase()); // true
JavaScript
  • 問4: 配列 [“a”,”B”,”c”] を全部大文字にして出力せよ。
console.log(["a","B","c"].map(s => s.toUpperCase())); // ["A","B","C"]
JavaScript

まとめ

  • 基本は toUpperCasetoLowerCase。比較や検索の前に正規化する。
  • 先頭だけ大文字化や各単語のキャピタライズは、部分的に組み合わせて実装。
  • ロケールが影響する言語では toLocaleUpperCase/LowerCase を検討。
  • Unicodeの特殊ケースや厳密なタイトルルールは複雑。必要に応じてライブラリの利用も考える。
タイトルとURLをコピーしました