Ralf: Tausender-Punkt entfernen

Hallo,

irgendwie habe ich wohl gerade ein Brett vor dem Kopf ...

Ich möchte in einem String, welcher z.B. auch formatierte Zahlen enthalten kann, den Tausender-Punkt entfernen. Dazu habe ich zunächst mal mit replace(/.(\d\d\d)/g,"$1") angefangen.
Leider können in dem String auch Datumsangaben vorkommen (z.B. 18.01.2007) und da soll die Ersetzung natürlich nicht greifen.

Natürlich könnte ich das nacheinander abfragen, aber geht es nicht auch in einem Durchgang?

Die Ersetzung soll also nur dann erfolgen, wenn nach den 3 Ziffern keine weitere Ziffer folgt bzw. der String zu Ende ist. Müsste doch mit einer Kombination aus ^\d.+*$ gehen - oder?

Ralf

  1. Moin, moin!

    Es darf also nicht passieren, wenn nach einem Punkt mehr als 3 Ziffern folgen. Ungetestet:

    replace(/.(\d\d\d)(\D|$)/gs,"$1")

    Alles klar?

    Norbert

    1. Hallo,

      replace(/.(\d\d\d)(\D|$)/gs,"$1")

      Fast. Ohne das "s" Flag (gibts nicht) und mit "$1$2" scheint es zu klappen. Mir war nicht bewusst, dass das "$" auch allein stehen kann.

      Danke!

      Ralf

      1. Mahlzeit!

        Ich bin eher in Perl zu Hause und bin dort den Modifier s gewohnt. An das $2 hatte ich fälschlicher Weise gar nicht gedacht. Das $ soll bewirken, dass auch am Ende einer Zeichenkette die Beseitigung des Punktes funktioniert.

        Norbert

        1. Ich bin eher in Perl zu Hause und bin dort den Modifier s gewohnt.

          Den braucht man aber auch dort selten.

          Struppi.

          --
          Javascript ist toll (Perl auch!)