2012-05-14 85 views

回答

4

如果你想爲它使用正則表達式,你可以做這樣的事情,它測試一個值是否在某處有一個可選的句點。

function getType(input) { 
    var m = (/[\d]+(\.[\d]+)?/).exec(input); 
    if (m) { 
     // Check if there is a decimal place 
     if (m[1]) { return 'float'; } 
     else { return 'int'; }   
    } 
    return 'string'; 
} 

// In use... 
var type = getType($('input:eq(0)').val()); 
+0

這樣的東西的正則表達式可能會相當昂貴... Tomasz'或我的解決方案更快。但是原創解決方案當然總是好的。 –

+0

@WillemMulder同意,這是昂貴的。編輯之前的原始問題問如何使用正則表達式,這就是爲什麼我這樣發佈它。 –

+0

好的:-)主題編輯是所有與答案有關的邪惡(即討論)的根源! –

8

只是比較圓形和原始值:

if(Math.round(input) == input) { 
    //int 
} 

該測試也通過浮法樣值,例如"2.","3.0",這可能被認爲是錯誤或功能。

+1

'&& input.toString()。indexOf(「。」)!= -1'也許:) – naveen

8
function isInteger(number) { 
    return n % 1 === 0; // Remainder will be 0 if number is integer 
} 

應該工作!

另外:因爲你與srings工作(但要知道這是一個數字),這也可能做的伎倆

function isInteger(string) {  
    return parseFloat(string) == parseInt(string, 10); // always explicitly set radix to 10! 
}