2016-06-24 18 views
0

私は10進数をチェックし、それの後に2つの数字を許可するために使用しようとしている正規表現の方法があります。したがって、たとえば1.00の場合はtrueを返し、1.000の場合はfalseを返しますが、1.3または1の場合はfalseを返すようにしてください。 ここに何かがあるかわかりません。正規表現0の10進数の後

validateDecimal : function(value) { 
      var regex = new RegExp(/^\d*\.\d\d$/); 
      if (regex.test(value)) { 
       return true; 
      } else { 
       return false; 
      } 
     } 
+1

あなたの正規表現は正常に動作します:https://jsfiddle.net/7f1L92gL/。また、これを '/^\ d * \。\ d {2} $ /'に変更して、 '/ dを繰り返すことを避けることもできます。問題がある場合は、コンソールでエラーをチェックし、検証プラグインのドキュメントも確認します。 –

+0

'var regex =/^ \ d * \。\ d \ d $ /;'を使うか、 'var regex = new RegExp( '^ \\ d * \\。\\ d \\ d $ '); '(必要ありません) – anubhava

+0

あなたの式では、ドットの前に数字がないことを許可します。 1つまたは複数の数字があるかどうかを確認するには、このような '+'を使うことを検討してください。\/\ d {2} $/' – Niitaku

答えて

0

あなたが欲しいものを、提供されている例によると、次のとおりです。

/^\d*\.\d{2}$/ 

はのは、ステップバイステップでそれを見てみましょう:

  1. \ D * - 任意の数字と数字の任意の量に一致します"1"、 "23"、 "3535"は一致します
  2. \。 - D {2} \リテラルドット
  3. - マッチ二桁なので、 "00"、 "22" がある場合にのみ、 "56" が一致しているが、 "1" または "000"

ありませんJavaScriptの正規表現with this convenient online toolをテストすることができます。 また、hereは、正規表現を分析して詳細を確認できる素晴らしいウェブサイトです。

+0

これは、OPが要求したものではなく、10進数の直後に「0」の数字だけをマッチさせるように正規表現を制限します。 –

+0

質問を引用する: 'しかし、私は1.3' – Jezor

+0

の場合はfalseを返したいが、OPが必要としない小数点の後に1,2個の' 0 'を持つ数字だけを一致させる*。 –

関連する問題