charCodeAtメソッド

広告

charCodeAtメソッドは文字列の中の指定された位置にある文字の文字コードを返します。

文字列の中から指定の位置にある文字の文字コードを返します。

パラメータ:
  int  インデックス
戻り値:
  指定された位置の文字の文字コード(整数)

文字列の中で引数に指定したインデックスの位置にある文字の文字コードを返します。コードはUnicodeコードで返される値は0から65535(0x0000から0xFFFF)までの整数です。

"2009年度"という文字列を例に考えてみます。文字列は6個の文字が含まれており各文字に対するインデックスは次の通りです。

2   0
0   1
0   2
9   3
年  4
度  5

この時、charCodeAtメソッドを使用すると次のような数値を取得できます。

charCodeAt(0) --> 50
charCodeAt(2) --> 48
charCodeAt(4) --> 24180

例えばインデックスが0の文字は"2"ですが、"2"のUnicodeの文字コードが50ということになります。

指定したインデックスが文字の長さを越えていた場合など、インデックスが示す文字が存在しない場合にはNaNを返します。

サンプルコード

では簡単なサンプルで試してみます。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<meta http-equiv="Content-Script-Type" content="text/javascript">
<title>JavaScript テスト</title>
</head>
<body>

<script type="text/javascript" src="./js/script10_1.js">
</script>

</body>
</html>
function print(str){
  document.write(str + "<br />");
}

document.write("<p>");

var str_obj = new String("2009年度");

print(str_obj);

print("charCodeAt(0) --> " + str_obj.charCodeAt(0));
print("charCodeAt(1) --> " + str_obj.charCodeAt(1));
print("charCodeAt(2) --> " + str_obj.charCodeAt(2));
print("charCodeAt(3) --> " + str_obj.charCodeAt(3));
print("charCodeAt(4) --> " + str_obj.charCodeAt(4));
print("charCodeAt(5) --> " + str_obj.charCodeAt(5));

document.write("</p>");

上記を実際にブラウザ見てみると次のように表示されます。

p10-1

( Written by Tatsuo Ikura )