JavaScript Unicodeコードポイントを取得する(codePointAt)

JavaScriptのUnicodeコードポイントを取得するサンプルです。
codePointAtメソッドを使用します。

目次

codePointAtメソッド

変数 = 文字列.codePointAt(数値);

コード

codePointAtメソッドのサンプルです。

<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-8行目は、引数の位置にあるUnicodeコードポイントを返します。最初の1文字目は0から始まります。
10行目は、最後の文字のコードを取得しています。lengthで文字列の長さを取得して1引きます。
12行目は、引数がない場合です。1文字目のコードを返します。
14行目は、引数が範囲外の場合です。undefinedを返します。
17-21行目は、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コードポイントです。
8行目は、toStringメソッドで16進数にしています。
10行目は、サロゲートペアの「つちよし」を表示しています。

関連の記事

JavaScript 文字列を区切り文字で分割する(split)
JavaScript 文字列から文字列の一部を取得する(substring)
JavaScript 文字列から文字列の一部を取得する(slice)
JavaScript 文字列から文字列の一部を取得する(substr)
JavaScript 文字列から1文字を取得する(charAt)
JavaScript 文字コードを取得する(charCodeAt)

△上に戻る