【JavaScript】charAt / charCodeAt – 文字列の特定の位置にある文字や文字コードを取得するためのメソッド

JavaScriptの .charAt()および.charCodeAt()メソッドは、文字列の特定の位置にある文字や文字コードを取得するためのメソッドです。文字列操作の基礎としてよく使われるため、基本的な使い方や注意点をまとめていきたいと思います。

charAt()メソッドとは?

charAt()は、指定したインデックス(位置)にある文字を返します。

基本的な構文

HTML
文字列.charAt(インデックス);
  • インデックス:取得したい文字の位置(0から始まる)
  • インデックスが範囲外(文字列の長さ以上)の場合は空文字 "" を返す

基本的な使い方

HTML
const text = 'Cappuccino';
console.log(text.charAt(0)); // "C"
console.log(text.charAt(4)); // "u"
console.log(text.charAt(100)); // ""(範囲外のため空文字)

文字コードを文字に変換

JavaScript
const code = 65;
console.log(String.fromCharCode(code)); // "A"

サンプルコード

文字列を1文字ずつ分解

JavaScript
const text = 'Coffee';
for (let i = 0; i < text.length; i++) {
  console.log(text.charAt(i));
}
// 出力: "C" "o" "f" "f" "e" "e"

文字コードを使って大文字・小文字判定

JavaScript
const char = 'A';
if (char.charCodeAt(0) >= 65 && char.charCodeAt(0) <= 90) {
  console.log('大文字です');
} else {
  console.log('小文字またはその他の文字です');
}

文字列をUnicode数値の配列に変換

JavaScript
const text = 'ABC';
const codes = [];
for (let i = 0; i < text.length; i++) {
  codes.push(text.charCodeAt(i));
}
console.log(codes); // [65, 66, 67]

使用時の注意点

範囲外のインデックスを指定した場合

  • charAt()は空文字""を返します。
  • charCodeAt()NaNを返します。

絵文字やサロゲートペア(1つの文字を2つの16ビットで表現する方式)には対応していない

  • charCodeAt()は、基本的に1バイトの文字に対してのみ機能するため、サロゲートペアを含む文字(例: “𠮷”)では正しく取得できません。
  • サロゲートペアに対応するにはcodePointAt()を使用することをおすすめします。

さいごに

  • charAt()は指定した位置の文字を取得します。
  • charCodeAt()は指定した位置の文字コードを取得します。
  • 範囲外のインデックスを指定すると.charAt()"".charCodeAt()NaNを返します。
  • 絵文字やサロゲートペアを扱う場合はcodePointAt()を使用する。