JavaScript/String/prototype/codePointAt
表示
String.prototype.codePointAt()
は、文字列内の指定された位置にある文字のUnicodeコードポイント値を返すメソッドです。このメソッドは、サロゲートペアを正しく処理し、完全なUnicodeコードポイント値(0から0x10FFFF)を取得します[1]。
構文
[編集]str.codePointAt(index)
index
: 取得したい文字の位置を示す0以上の整数。
例
[編集]通常の文字のコードポイントを取得するプログラム
[編集]以下のプログラムは、codePointAt()
を使用して通常の文字のコードポイントを取得します。
conststr='ABC';console.log(str.codePointAt(0));// 65 ("A"のコードポイント)console.log(str.codePointAt(1));// 66 ("B"のコードポイント)console.log(str.codePointAt(2));// 67 ("C"のコードポイント)
このプログラムでは、codePointAt()
を使用して基本的な文字のコードポイントを取得しています。
サロゲートペアの文字のコードポイントを取得するプログラム
[編集]以下のプログラムは、サロゲートペアの文字のコードポイントを取得します。
conststr='𠮷';// サロゲートペアの文字console.log(str.codePointAt(0));// 134071 ("𠮷"のコードポイント)console.log(str.charCodeAt(0));// 55362 (上位サロゲート)console.log(str.charCodeAt(1));// 57271 (下位サロゲート)
このプログラムでは、codePointAt()
と charCodeAt()
の違いを示し、サロゲートペアの処理の違いを確認しています。
注意点
[編集]- インデックス: インデックスは0から始まります。
- 範囲外: 指定された位置が文字列の長さ以上の場合、
undefined
を返します。 - 負の数: 負の数が指定された場合、
undefined
を返します。 - サロゲートペア: サロゲートペアの文字に対して正しいコードポイント値を返します。
- charCodeAtとの違い:
charCodeAt()
はUTF-16コードユニットを返しますが、codePointAt()
は完全なコードポイント値を返します。
脚註
[編集]- ^これは、文字列内の特定の位置にある文字のUnicodeコードポイント値を取得するために使用されます。