JavaScript 文字からUnicodeを取得(codePointAt)

JavaScriptのcodePointAtメソッドで、文字からUnicodeコードポイントを取得するサンプルです。

目次

サンプル codePointAtとは
  Unicodeコードポイントを取得する
  数値文字参照
  サロゲートペア文字列の場合

codePointAtとは

変数 = 文字列.codePointAt(数値);
  • 文字列のうち、引数の数値の位置にあるUnicodeコードポイントを返します。
  • 文字列の最初の1文字目の位置は0です。
  • 引数が範囲外のときは、undefinedを返します。
  • 引数がない場合は、1文字目を返します。

Unicodeコードポイントを取得する

<script>
const str1 = "ABあい";

console.log(str1.codePointAt(0)); // 65
console.log(str1.codePointAt(1)); // 66
console.log(str1.codePointAt(2)); // 12354

console.log(str1.codePointAt(str1.length -1)); // 12356
console.log(str1.codePointAt()); // 65
console.log(str1.codePointAt(9)); // undefined

console.log(str1.codePointAt(0).toString(16)); // 41
console.log(str1.codePointAt(1).toString(16)); // 42
console.log(str1.codePointAt(2).toString(16)); // 3042
</script>

4-6行目は、引数の位置にあるUnicodeコードポイントを返します。引数は0から始まります。
4行目の65は「A」を表します。5行目の66は「B」を表します。
6行目の12354は「あ」を表します。8行目の12356は「い」を表します
8行目は、最後の文字のコードを取得しています。lengthで文字列の長さを取得して1引きます。
9行目は、引数がない場合です。1文字目のコードを返します。
10行目は、引数が範囲外の場合です。undefinedを返します。
12-14行目は、toStringメソッドで16進数にしています。

数値文字参照

10進数の場合: &#数値;
16進数の場合: &#x数値;

上記コードの値は、数値文字参照で使用できます。

HTML上で
10進数の「&#65;」と16進数の「&#x41;」は、「A」と表示されます。
10進数の「&#12354;」と16進数の「&#x3042;」は、「あ」と表示されます。

サロゲートペア文字列の場合

サロゲートペア文字列の場合のサンプルです。
2行目は、サロゲートペアの「つちよし」です。

<script>
  const str1 = "𠮷";

  console.log(str1.codePointAt(0)); // 134071

  console.log(str1.codePointAt(0).toString(16)); // 20bb7

  console.log("\u{20bb7}"); //𠮷
</script>

4行目は、codePointAtメソッドです。戻り値はUnicodeコードポイントです。
6行目は、toStringメソッドで16進数にしています。
8行目は、サロゲートペアの「つちよし」を表示しています。Unicodeコードポイントのエスケープを使用しています。

文字コードは秀丸やサクラエディタで確認できます。

秀丸で見た場合

Unicodeコードポイントは、U+16進数で記述されます。

以下はMDNのcodePointAtメソッドのリンクです。
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/String/codePointAt

関連の記事

秀丸 文字コードを確認する方法
JavaScript 文字列から1文字を取得する(charAt)
JavaScript 文字コードを取得する(charCodeAt)
JavaScript Unicodeから文字を取得(fromCodePoint)

△上に戻る