toLocaleStringメソッド

広告

toLocaleStringメソッドは対象のオブジェクトを文字列に変換した結果を返します。この時、現在のロケールに応じた形式で変換を行った結果を返します。

ロケールに応じたオブジェクトの文字列表現を返します。

パラメータ:
  無し
戻り値:
  オブジェクトの文字列表現

toStringメソッドがオブジェクトの文字列表現を返しますが、toLocaleStringメソッドは現在のロケールに応じた文字列表現を返します。つまりJPロケールの場合とUSロケールの場合でtoLocaleStringメソッドが返す文字列表現は異なる場合があります。

ObjectクラスのtoLocaleStringメソッドは、toStringメソッドを呼び出しているだけなので結果は同じとなります。

次の例を見て下さい。

var obj = new Object();
alert(obj.toString());
alert(obj.toLocaleString());

この場合、どちらも次のように表示されます。

[object Object]

Objectクラスを継承しているクラスでtoLocaleStringメソッドを再定義しなかった場合、単にtoStringメソッドを呼び出します。それに対してNumberクラスやDateクラスではtoLocaleStringメソッドを再定義しているためtoStringメソッドの場合と異なる結果を返します。

次の例を見て下さい。

var d = new Date();
alert(d.toString());
alert(d.toLocaleString());

この場合「alert(d.toString())」は次のように表示されます。

Thu Aug 06 2009 12:12:00 GMT+0900

それに対して「alert(d.toLocaleString())」は次のように表示されます。

2009年8月6日 12:12:00

このように現在のロケールに応じた文字列の形式を取得することができます。

サンプルコード

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

<!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/script4_1.js">
</script>

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

var obj = new Object();
obj.width = 100;
var d = new Date();
var num_obj = new Number(1820000);

document.write("<p>");

print(obj.toString());
print(obj.toLocaleString());
print(d.toString());
print(d.toLocaleString());
print(num_obj.toString());
print(num_obj.toLocaleString());

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

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

p4-1

( Written by Tatsuo Ikura )