初心者向け:大文字小文字変換の基本
文字列の「大文字・小文字」を変えるときは、まず 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まとめ
- 基本は
toUpperCaseとtoLowerCase。比較や検索の前に正規化する。 - 先頭だけ大文字化や各単語のキャピタライズは、部分的に組み合わせて実装。
- ロケールが影響する言語では
toLocaleUpperCase/LowerCaseを検討。 - Unicodeの特殊ケースや厳密なタイトルルールは複雑。必要に応じてライブラリの利用も考える。
