1. 程式人生 > >js判斷輸入的是否為數字

js判斷輸入的是否為數字

// 判斷輸入是否為數字
function isNumeric(n) {
    return !isNaN(parseFloat(n)) && isFinite(n);
}

js中字串轉換為數字:
parseInt()函式可解析一個字串,並返回一個整數。
parseFloat()函式可解析一個字串,並返回一個浮點數。

parseInt("10");			//返回 10
parseInt("19",10);		//返回 19 (10+9)
parseInt("11",2);		//返回 3 (2+1)
parseInt("17",8);		//返回 15 (8+7)
parseInt("1f",16);		//返回 31 (16+15)
parseInt("010");		//未定:返回 10 或 8
<script>
document.write(parseFloat("10")) 
document.write(parseFloat("10.00")) 
document.write(parseFloat("10.33")) 
document.write(parseFloat("34 45 66")) 
document.write(parseFloat(" 60 ")) 
document.write(parseFloat("40 years"))
document.write(parseFloat("He was 40"))
</script>

輸出:

10
10
10.33
34
60
40
NaN

js中提供一個方法,判斷是不是一個數字。
IsNaN()函式用於檢查其引數是否是非數字值。
true 不是一個數字
false 是一個數字。

<script>
document.write(isNaN(123));
document.write(isNaN(-1.23));
document.write(isNaN(5-2));
document.write(isNaN(0));
document.write(isNaN("Hello"));
document.write(isNaN("2005/12/12"));
</script>

輸出:

false
false
false
false
true
true

isFinite() 函式用於檢查其引數是否是無窮大。
如果 number 是有限數字(或可轉換為有限數字),那麼返回 true。否則,如果 number 是 NaN(非數字),或者是正、負無窮大的數,則返回 false。

<script>
document.write(isFinite(123)+ "<br />")
document.write(isFinite(-1.23)+ "<br />")
document.write(isFinite(5-2)+ "<br />")
document.write(isFinite(0)+ "<br />")
document.write(isFinite("Hello")+ "<br />")
document.write(isFinite("2005/12/12")+ "<br />")
</script>

輸出:

true
true
true
true
false
false