2017-01-04 4 views
0

Ich brauche eine Regex, die eine Eingänge wie Streichhölzer: 1234.789 12 123.02Wie schränkt man die Eingabe von Float-Werten ein?

, die maximale 4 Ziffern auf der linken Seite von . und maximale 3 auf der rechten Seite von .

here ist, was ich habe versucht.

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

Doppel Flucht Sonderzeichen in den Konstruktor Notation. Siehe [Warum müssen Regex-Konstruktoren doppelt maskiert werden?] (Http://stackoverflow.com/questions/17863066/why-do-regex-constructors-need-to-be-double-escaped) Verwenden Sie jedoch ein Regex-Literal : 'var patt =/^ \ d {1,4} (?: \. \ d {0,3})? $ /;' –

+1

Gibt es ein Problem mit dem Code, den Sie ausprobiert haben? Wenn ja, was ist das? –

+1

Die Regex funktioniert gut, ich denke, das Problem ist, wie Sie versuchen, die Werte zu beschränken. Doing 'e.preventDefault();' wird nicht dazu führen, "rückgängig zu machen" –

Antwort

0

sollte dies tun:

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

Sie können in der unten überprüfen:

Regular Expression

Verwandte Themen