Von einer Datenquelle bekomme ich viele Zahlen, die Formatierung vor der Präsentation in einem Browser benötigen.Reg Ex: Entfernen überflüssige Nullen und Dezimalpunkt am Ende einer Zahl
Einige der Zahlen erscheinen mit abschließenden Nullen, und einige der Zahlen erscheinen mit einem nachlaufenden Dezimalpunkt, hinter dem nichts steht.
Hier sind einige Beispiele von dem, was ich habe versucht, mit Javascript regex Implementierung zu erreichen:
130.0000 = 130
132.0050 = 132.005
16.9000 = 16.9
140000000.00 = 140000000
132. = 132
89.0 = 89
90.0 = 90
9000.00 = 9000
99.0 = 99
99.00500 = 99.005
70 = 70 //fail, as it matches the zeros at the end if there's no decimal point
700 = 700 //fail, as it matches the zeros at the end if there's no decimal point
Die folgende RegEx alles richtig bis auf die letzten beiden Tests übereinstimmt, wo alle Nullen vor dem Komma werden ebenfalls angepasst:
Jede Hilfe mit, was jetzt mir Kopfschmerzen gibt, würde sehr geschätzt werden.
Vielen Dank im Voraus ...
'[\ .0]' bedeutet * entweder eine '.' oder eine' 0' *. Du meintest wahrscheinlich '(\ .0)'. – Pointy
Ich denke, wenn Sie die Regex-Route gehen, müssten Sie zwei separate Regexes verwenden. '\ .0 * $', um nachfolgende Nullen, einschließlich des Dezimalpunkts, und etwas wie '\. \ D *? (0 *) $', um nachfolgende Nullen zu erfassen (diesmal in einer Erfassungsgruppe), aber nur nach einer Dezimalzahl zu folgen Punkt. Die Kombination der beiden scheint ziemlich kompliziert zu sein, und Sie könnten mit einem anderen Ansatz besser dran sein. – SpoonMeiser
@SpoonMeiser: Nicht so kompliziert: '\ .0 * (?! \ D) | (\. \ D *?) 0+ \ b' und durch' $ 1' ersetzen. Aber die angenommene Antwort ist noch besser. –