1

Javascriptで、ユーザー入力が有効な小数のみであることを検証しようとしています

私は現在持っている正規表現を示す次のJSFiddleを持っています

http://jsfiddle.net/FCHwx/

var regex = /^[0-9]+$/i;

var key = '500.00';

if (key.match(regex) != null) {
    alert('legal');
}
else {
    alert('illegal');
}

これは整数に対しては問題なく機能します。10進数も許可する必要があります(つまり、小数点以下2桁まで)

私はstackoverflowで見つけることができる多くの正規表現を試しました。たとえば 、精度2の小数の単純な正規表現

しかし、これらのどれもこのユースケースでは機能しません

私は何が間違っているのですか?

4

4 に答える 4

7

これはうまくいくはずです

var regex = /^\d+(\.\d{1,2})?$/i;
于 2013-02-28T11:54:36.577 に答える
3

これを試しましたか?

var regex = /^[0-9]+\.[0-9]{0,2}$/i;
于 2013-02-28T11:52:21.947 に答える
1

これには正規表現を使用しないことをお勧めしますが、単純なものを使用してください!isNaN

console.log(!isNaN('20.13')); // true
console.log(!isNaN('20')); // true
console.log(!isNaN('20kb')); // false
于 2013-02-28T11:53:31.063 に答える
0

これを試して:

\d+(\.\d{1,2})?

dは数字用ですd{1,2}は1桁前です。および0.51などの少なくとも2桁

于 2013-02-28T11:53:56.957 に答える