2017-02-06 11 views
0

(。):JavaScriptの正規表現私は小数点以下2桁できるように、正常に動作し、次の式を試してみました

/^[0-9]+(\.[0-9]{1,2})?$/ 

をしかし、それは「0.34" 等の値を考慮していません「.5」は期間の前に数字がないためです。 期間の前に何も指定されていない場合は、期間の前に数字「0」を取るように式を更新するにはどうすればよいですか? so .34 => 0.34、有効な小数点以下2桁の式。

+0

でください、あなただけの'.05'とマッチしたい、ない場合はゼロを追加したいですか? –

+0

期間の前にない場合はゼロ。 – SatAj

答えて

2

あなたは、この正規表現を使用することができます:あなたは2進ポイントまでの小数をフォーマットしたい場合は、toFixedを使用

/^\d*\.?\d{1,2}$/ 

RegEx Demo


を:

var n = ".34"; 
var str = parseFloat(n).toFixed(2) // will do rounding as well 
//=> 0.34 
+1

最適化ソリューションをありがとう。 – SatAj

2

使用*の代わりに+

^[0-9]*(\.[0-9]{1,2})?$ 

+:前のトークンの1以上に一致します。

*:前述のトークンの0個以上に一致します。

+0

これはまた空の入力を可能にします – anubhava

+0

が真です、オプションはドット内にあるべきです – Julian

関連する問題