可能重複:
How to check if a number is float or integer?檢查輸入浮動或整數
正如標題所暗示的,我想檢查是否有input
的值是float
或int
值。有小費嗎?
乾杯!
可能重複:
How to check if a number is float or integer?檢查輸入浮動或整數
正如標題所暗示的,我想檢查是否有input
的值是float
或int
值。有小費嗎?
乾杯!
如果你想爲它使用正則表達式,你可以做這樣的事情,它測試一個值是否在某處有一個可選的句點。
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());
這樣的東西的正則表達式可能會相當昂貴... Tomasz'或我的解決方案更快。但是原創解決方案當然總是好的。 –
@WillemMulder同意,這是昂貴的。編輯之前的原始問題問如何使用正則表達式,這就是爲什麼我這樣發佈它。 –
好的:-)主題編輯是所有與答案有關的邪惡(即討論)的根源! –
只是比較圓形和原始值:
if(Math.round(input) == input) {
//int
}
該測試也通過浮法樣值,例如"2."
,"3.0"
,這可能被認爲是錯誤或功能。
'&& input.toString()。indexOf(「。」)!= -1'也許:) – naveen
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!
}
「輸入」的值是_always_字符串。你嘗試過'parseInt'和'parseFloat'還是一個正則表達式? – Halcyon