parseInt関数

広告

文字列を整数に変換するにはparseInt関数を使います。

文字列を整数に変換します。

パラメータ:
  str  対象の文字列
  int  基数
戻り値:
  変換された数値。対象の文字列を数値に変換できない場合はNaN

1番目の引数に指定された文字列を整数に変換します。文字列は先頭の文字から順に調べていき、数値でない文字が現れる直前までの文字列を整数に変換します。数値と判断される文字は先頭の「+」又は「-」及び数字、16進数の場合のAからFまでのアルファベットです。

parseInt("10")         -->  10
parseInt("2008year")   -->  2008
parseInt("-77point")   -->  -77

文字列の先頭の文字が数値でない文字だった場合にはNaNを返します。

parseInt("Book170")    -->  NaN

2番目の引数には基数を指定します。指定できる値は「2」「8」「10」「16」です。例えば基数に2を指定した場合、対象の文字列が「11」だった場合には2進数の11として解釈し結果を10進数の3で返します。また基数を16に指定した場合、対象の文字列が「11」だった場合には16進数の11として解釈し結果を10進数の17として返します。

parseInt("11", 2)      -->  3
parseInt("11", 8)      -->  9
parseInt("11", 10)     -->  11
parseInt("11", 16)     -->  17

なお基数を指定しなかった場合には対象の文字列が「0x」又は「0X」で始まる場合には基数を16として判断し、それ以外の場合には基数を10として判断します。

parseInt("0x37")       -->  55
parseInt("37")         -->  37

最後に空文字はNaNを返します。

parseInt("")           -->  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/script1_1.js">
</script>

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

document.write("<p>");

print("parseInt('10') = " + parseInt("10"));
print("parseInt('2008year') = " + parseInt("2008year"));
print("parseInt('-77point') = " + parseInt("-77point"));
print("parseInt('Book170') = " + parseInt("Book170"));
print("parseInt('0x3F_01') = " + parseInt("0x3F_01", 16));

print("parseInt('11', 2) = " + parseInt("11", 2));
print("parseInt('11', 8) = " + parseInt("11", 8));
print("parseInt('11', 10) = " + parseInt("11", 10));
print("parseInt('11', 16) = " + parseInt("11", 16));

print("parseInt('') = " + parseInt(""));

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

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

p1-1

( Written by Tatsuo Ikura )