2017-01-04 10 views
0

私のような入力と一致する正規表現が必要です、.浮動小数点値の入力を制限する方法は?

hereの右側に.と最大3の左側に最大4桁です 1234.789 12 123.02

は私が持っているものです試しました。

i = 0; 
 
$(document).ready(function(e){ 
 
    $("input").keypress(function(e){ 
 
     var patt = new RegExp("^[0-9]{1,4}(?:\.[0-9]{0,3})?$"); 
 
     var val = this.value + e.key; 
 
     debugger; 
 
    if (!patt.test(val)){ 
 
    \t e.preventDefault(); 
 
    } 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
Enter your name: <input type="number">

+0

ダブルコンストラクタ記法で特殊文字をエスケープします。 [なぜ正規表現のコンストラクタを二重にエスケープする必要があるのか​​?](http://stackoverflow.com/questions/17863066/why-do-regex-constructors-need-to-be-double-escaped)しかし、正規表現のリテラル: 'var patt =/^ \ d {1,4}(?:\。\ d {0,3})?$ /;' –

+1

試したコードに問題はありますか?はいの場合、それは何ですか? –

+1

正規表現は正常に動作していますが、問題は値を制限しようとしていることです。 'e.preventDefault();'を実行しても、 "元に戻す" –

答えて

0

この実行する必要があります。

^\d{0,4}(\.\d{0,4}){0,1}$ 

をあなたは以下で確認できます。

Regular Expression

関連する問題