0

ユーザーがprimefaces入力テキストに無効な金額を入力することを制限したい。最大整数および小数桁の長さは、実行時に既知です。私はJavaScriptの正規表現を使用してこれを達成しようとしています。

    var pattern =/^\d{0,3}?[\.]?\d{1,3}$/;
    if (pattern.test(amount)) {
        return true;
    }else {
        console.log('rgx Failed');
        return false;
    }

この例では、最大整数と小数部の長さとして3を考慮しています。
整数部分の長さは0〜3で、小数部分は少なくとも1桁、最大3である必要があります。ただし、上記のJavaScriptは機能せず、整数部分で7桁を許可しています。

inputText onKeyDownイベントを使用してこのスクリプトを呼び出しているので、キーが押されるたびにチェックし、有効な量のみを入力するように制限できます。

有効な金額:123.123、12.1、1.12、.123、1.3、.1234など無効な金額:123。、1234など

4

4 に答える 4

2

簡単な解決策は次のとおりです。

/^\d{0,3}\.\d{1,3}$/

更新された要件に一致させるには:

pattern.replace(/^(\d{0,3})\.?(\d{0,3})$/, function(m, g1,g2) {
    return (g1 || 0) + '.' + (g2 || 0);
})

入力が6桁とオプションの小数点以下の桁数に制限されている限り機能します

于 2013-02-07T09:28:14.343 に答える
0

これを試してみてください....(^\d{1,3}([.]\d{1,3})?)$|(^\d{0,3}$)

先読み ?= または負の先読み ?!

ありがとう

于 2013-02-07T09:48:27.897 に答える
0

すべての要件と条件を満たしている primefaces-extensions inputNumber コンポーネントを使用しました。

maxValue=9999.999"/>

入力番号は、整数部 4 桁、小数部 3 桁を受け入れます。ゼロの書式設定と追加は、コンポーネント自体によって処理されます。

于 2013-02-21T05:00:12.717 に答える
0

どうですか:

/^(\d{1,3}\.\d{1,3})|(\.\d{1,3})|(\d{1,3})$/

きれいではありませんが、機能します。

于 2013-02-07T09:47:29.530 に答える