テキストフィールドに数字以外が入力されているか調べる

説明

テキストフィールドに入力されたデータが数値かどうかを調べるには正規表現を使います。JavaScriptではmatch()で正規表現の文字列を指定することができ、結果が配列で返されます。もし、何もマッチしなかった場合にはmatch()はnullを返します。数値かどうか調べる場合にはマッチする条件を数値にマッチではなく、数値以外にマッチするように指定します。数値以外にマッチさせるための正規表現指定はmatch(/[^0-9]/)となります。^は〜以外という意味になります。[^0-9]とすると0から9以外のものにマッチすることになります。
JavaScriptテクニック ブック  詳しい解説などはJavaScriptテクニック ブックを参照してください。

サンプルコード [実行]

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8">
<title>JavaScript Sample</title>
<link rel="stylesheet" type="text/css" href="main.css" media="all">
<script type="text/javascript" src="main.js"></script>
</head>
<body>
<h1>テキストフィールドに数字以外が入力されているか調べる</h1>
<form action="./check.cgi" method="get" name="mainForm">
番号:<input type="text" name="qNumber" id="qNumber">(0〜9の数字以外はエラー)<br>
<input type="button" id="checkButton" value="チェック">
</form>
</body>
</html>

window.onload = function(){
document.getElementById("checkButton").onclick = function(){
var text = document.getElementById("qNumber").value;
var result = text.match(/[^0-9]/);
if (!text || result) {
alert("0〜9の数字だけ入力してください");
document.getElementById("qNumber").focus();
document.getElementById("qNumber").select();
}
}
}