15


5

次のように、正数を検証するために式を使用しました。

^ \ d * \。{0,1} \ d $

-23を入力すると、負の入力としてマークされますが、23を入力すると無効な番号としてマークされます。

何が問題ですか?

誰もが23でそれが(正)戻ってくるという解決策を与えることができますか?

7 Answer


35


正規表現以外に何か使用することを考えましたか?

jQuery Validation Pluginを使用している場合は、http://docs.jquery.com/Plugins/Validation/Validator/addMethod []を使用してカスタム検証メソッドを作成できます。バリデータ/ addMethod]関数:

$.validator.addMethod('positiveNumber',
    function (value) {
        return Number(value) > 0;
    }, 'Enter a positive number.');

'' '' '

*編集:*正規表現だけが欲しいので、これを試してください。

^\+?[0-9]*\.?[0-9]+$

説明:

  • 文字列の始まり( + ^ +

  • オプションの+記号( + \ +?+

  • 整数部分( + [0-9] * +

  • オプションのドット( + \。?+

  • オプションの浮動小数点部分( + [0-9] ++

  • 文字列の終わり( + $ +


18


または、単に「+ min:0.01+」を使用します。 例えばお金のために


2


最も簡単な方法は

$( "#myform").validate({規則:{フィールド:{必須:true、ディジット:true}}});

ref:digitsメソッド| jQuery検証プラグイン - > https://jqueryvalidation.org/digits-method/


1


私は似たようなものを探しているので、これはオプションの先行するプラス()記号で正の、ゼロでない値をテストします。

^ \?[1-9] [0-9] * $

これは小数点以下の桁数とは一致せず、先行ゼロとも一致しません。


0


^ \?\ d *。{0,1} \ d $

数字の前に ""を付けることができます。


0


正規表現を使用することを主張する場合は、必ず指数を使用して数字をキャプチャし、0.42と同じ形式の.42の数字を使用できるようにしてください。

^?\ d *。?\ d([eE]?\ d)?$

トリックする必要があります。


0


はい、これを試してください。

\?\ d * \。?\ d \ b