0

テキストボックスに数字のみを入力できるようにする次のjQueryコードがあります。

$('.numbersOnly').keyup(function () {
    if (this.value != this.value.replace(/[^0-9\.]/g, '')) {
    this.value = this.value.replace(/[^0-9\.]/g, '');
}
});

これに追加の検証を追加して、0 から 10 までの範囲と小数点以下 3 桁までを許可することを検討しています。これは、使用すべきコードの正しい形式ですか?

$('.numbersOnly').keyup(function () {
    if (this.value != this.value.replace(/[^([0-9]|1[0])\.(0[0-9][0-9]|1[0][0])$]/g, '')) {
    this.value = this.value.replace(/[^0-9\.]/g, '');
}
});
4

1 に答える 1

2

あなたの質問の正規表現は無効です。要求されたパターンは、単なる「数字」よりも複雑です。一致しないパターンをチェックする代わりに

if (this.value != this.value.replace(...

一致するものを使用することをお勧めします

if ("" != this.value.replace(...

これはあなたのニーズに一致します:([0-9]|10)(\.[0-9][0-9][0-9])?

注:最初の例のように、最後の行の置換は必ずしも問題を解決するとは限りません。

于 2013-06-03T07:22:27.393 に答える