2011-02-02 113 views
0

我使用isNaN評估在文本框中輸入我的功能就是這樣使用isNaN評估輸入

function IsNumeric(n) { 
    return !isNaN(n); 
} 

它的正常工作與數字而不是負值,也沒有像1.2十進制值,

但我不會接受像1.2

我該怎麼辦,負面或十進制值?

謝謝

+0

是什麼類型`N`? – Gumbo 2011-02-02 14:28:49

+0

n是在文本框中.... – air 2011-02-02 14:29:44

回答

3

你的意思是

function IsPostiveInteger(n) { 
    var n = new Number(n); 
    return !isNaN(n) && n===parseInt(n,10) && n>0; 
} 
2

嘗試使用Number(n)。如果不是數字,這將返回NAN。否則,將不考慮返回相同數量的負或正

1

較短 備選解決方案:

function IsNumeric(n){ 
    // any valid number 
    //return /^-?\d+(?:\.\d+)?$/.test(n); 

    // only positive numbers 
    //return /^\d+(?:\.\d+)?$/.test(n); 

    // only positive whole numbers 
    return /^\d+$/.test(n); 
} 
+0

任何類型的文本,但提問者並不想小數也不負值 – mplungjan 2011-02-02 14:42:58