2013-07-16 55 views
0

我正在尝试对输入字段进行检查,以确定用户是否输入了美分金额。如果他们没有,我会抛出一个错误。检查支付金额中的美分

例子:

var paymentAmount = 1 
if(paymentAmount.indexOf('.') == -1) error("Please add cent amount"); 

上述作品为例子,但如果用户被错误加2位小数英寸我也希望能够检查这一点。

var paymentAmount = 1.00.2 

在上面的场景中,只有第一个index的小数点会被检测到。

我还需要检查他们是否有实际进入小数点后的分数。

什么是最好的方式去所有这3个检查。

回答

3

您可以使用正则表达式是:

if (/^\d+(\.\d{2})?$/.test(paymentAmount)) { 
    // Do something 
} 

Here is a working jsFiddle

1

你可以尝试这样的事:

function validateDecimal(value) { 
    var regex = new RegExp(/^\d*\.\d\d$/); 
    if (regex.test(value)) { 
     return true; 
    } else { 
     return false; 
    } 
} 

if (validateDecimal(paymentAmount)) { 
    //do something 
} 
1
var paymentAmount = parseFloat('1.00.0'); 
if (paymentAmount % 1 === 0) { 
    console.log('Cents required'); 
} 
0
if (Math.floor(paymentAmount) == paymentAmount) { 
    //it's a whole number 
}