2016-06-20 7 views
-2

入力フィールドは、その中に数字だけを持っている場合、私がチェックするための正規表現を持っている:私が許される唯一の番号の正規表現を持っていますが、浮動0のための1つを必要とするも

if (paymentAmount.match(/[^0-9\.,]/g)) ... show error 

私も場合に確認する必要があります値の前にも0があります。たとえば、0001.23はエラーをスローするはずですが、1.23は問題ありません。

これを現在の正規表現チェックに追加する方法はありますか?

あなたが行うことができます
+0

使用している言語を追加してください。それは質問がどのように答えられるかを変えるかもしれません。 –

答えて

2

あなたは、この使用することもできます。これは、2つの小数点、および2つの以上の小数と数字で入力を検出します

if (paymentAmount.match(/^(?!([1-9]\d*|0)(\.\d\d?)?$)/)) ... 

を。

は、ここではいくつかのテストです:

function numCheck(paymentAmount) { 
 
\t console.log(paymentAmount, 
 
       (paymentAmount.match(/^(?!([1-9]\d*|0)(\.\d\d?)?$)/)) 
 
        ? ' error' : ' ok'); 
 
} 
 

 
numCheck("1.0"); 
 
numCheck("1.0.0"); 
 
numCheck("01.0"); 
 
numCheck("1"); 
 
numCheck("10.09"); 
 
numCheck("10."); 
 
numCheck(".01"); 
 
numCheck("10.0901");

しかし、すなわち、形式が正しいことを確認するテスト、正のテストを行うことがより簡単です。あなたはいつも!で結果を否定することができます

if (!paymentAmount.match(/^([1-9]\d*|0)(\.\d\d?)?$/)) ... 
+0

この種のチェックを上記の正規表現に追加できますか? numCheck( "10.0901");小数点の後には2つの数字しかできません。 –

+0

私はそのルールを含めるために私の答えを更新しました。 – trincot

+0

ありがとうございます。 :) –

0

if (/[^0-9.,]/g.test(paymentAmount) || /^0+[1-9.]/.test(paymentAmount)) { 
    // ... show error 
} 

^0+[1-9]は任意の数字[1-9]または小数点の前に1つの以上のゼロにマッチします。

関連する問題