JavaScript 判断输入的值为数字

12,271 阅读1分钟

仅供学习,转载请注明出处

第一种方法:isNaN()

使用js自带全局函数isNaN(), isNaN()返回一个Boolean值,如下 :

<!DOCTYPE html>
<html>
<head>
	<title></title>
	<script type="text/javascript">
		;(function(){
			var sTr = 'hello world';

			alert("sTr=" + isNaN(sTr));  // 字符串输出 true

			var iNum = 1;

			alert("iNum=" + isNaN(iNum));  // 数字输出false

		}())
	</script>
</head>
<body>

</body>
</html>

如果以上sTr为一个空串或是一个空格,isNaN将把c当作数字0来处理,所以检查不严谨。

第二种方法:正则表达式

function checkNum(num){

	var reg=/^[0-9]+.?[0-9]*$/; //判断字符串是否为数字 ,判断正整数用/^[1-9]+[0-9]*]*$/

	if(!reg.test(num)){
	    alert("请输入数字");
	    return false;
	}else{
		alert("数字输入正确");
		return true;
	}

}

完整测试代码如下:

<!DOCTYPE html>
<html>
<head>
	<title></title>
	<script type="text/javascript">
		window.onload = function(){
			;(function(){

				var iInput = document.getElementById('input1');
				var iBtn1 = document.getElementById('btn1');

				iBtn1.onclick = function(){

					checkNum(input1.value);

				}

				function checkNum(num){

					var reg=/^[0-9]+.?[0-9]*$/; //判断字符串是否为数字 ,判断正整数用/^[1-9]+[0-9]*]*$/

					if(!reg.test(num)){
					    alert("请输入数字");
					    return false;
					}else{
						alert("数字输入正确");
						return true;
					}

				}


			}())
		}
		
	</script>
</head>
<body>
	<input type="text" name="" id="input1">
	<input type="button" name="" value="检查是否为整数" id="btn1">
</body>
</html>

第三种方法: 利用typeof的返回值

验证方法:如果返回的值为Number,则为数字;如果返回值为String或其它,则不是数字。如下所示:

var a=123;

var b='123abc';

typeof(a) //Number

typeof(b) //String