0

ユーザーがセントの金額を入力したかどうかを入力フィールドでチェックしようとしています。そうでない場合は、エラーをスローします。

例:

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

上記はこの例では機能しますが、ユーザーが誤って小数点以下 2 桁を追加した場合はどうなるでしょうか。それも確認できるようにしたいです。

var paymentAmount = 1.00.2

上記のシナリオでは、10 進数の最初の indexOf のみが検出されます。

また、小数点以下のセント数が実際に入力されているかどうかも確認する必要があります。

これら 3 つのチェックすべてについて最善の方法を教えてください。

4

4 に答える 4

3

これには正規表現を使用できます。

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

これは動作中の jsFiddleです。

于 2013-07-16T14:47:57.343 に答える
1
var paymentAmount = parseFloat('1.00.0');
if ( paymentAmount % 1 === 0 ) {
    console.log('Cents required');
}
于 2013-07-16T14:54:04.620 に答える
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
}
于 2013-07-16T14:48:40.307 に答える