Precision (p): Gesamtzahl der Stellen links und rechts vom KommaWie erstelle ich eine Regex, die (p, s) Genauigkeit und Skalierung wie der SQL-Dezimal-Typ entspricht?
Scale (e): Gesamtzahl der Ziffern rechts vom Komma
Erwägen Sie so weit meine folgende regex:
^-?[0-9]+(\.[0-9]{1,3})?$
- -? optional negative Zahl
- [0-9] Einstimmungen Zahlen 0-9
- "+" eine beliebige Anzahl von Ziffern
- "(\. [0-9] {1,3})?" optional dezimal mit 1-3 Ziffern
Beispiel:
100.95 has a precision of 5 and a scale of 2 (5,2)
Ich weiß, wie auf der rechten Seite nach links, und Gesamtzahl Gesamtzahl zu beschränken, aber nicht sicher, wie die gesamte Wertschöpfungs einzukapseln zu Begrenzen Sie den Teil "p, Präzision", und ignorieren Sie den Zeitraum, wenn es in dieser Anzahl vorhanden ist. Die - muss auch in dieser Gesamtzahl ignoriert werden.
UPDATE:
Dies scheint zu funktionieren ...
^(?=(\D*\d\D*){0,5}$)-?([0-9]+)?(\.?[0-9]{0,2})?$
blank line matches
0 - match
1 - match
123 - match
123.12 - match
-1 - match
123.122 - no match
Ich weiß, Sie fragen Für eine Regex bin ich sicher, dass die Antwort kommt ... sind Sie offen für andere Möglichkeiten, dies zu tun? vielleicht so: https://jsbin.com/moqiru/1/edit?js,console – JordanHendrix
@ user1447679 ich denke mein Code könnte Ihnen helfen. – John
@ JordanHendrix Anerkannt, aber ja, in diesem Fall muss es eine Regex sein. – user1447679