Für eine Währungseingabe möchte ich alle Minus-Eingabe ersetzen, die nicht am Anfang der Zeichenfolge oder, wenn es das letzte Zeichen ist, ist kein Komma vorangestellt.JavaScript RegEx: alle Minuswerte, die nicht am Anfang oder Ende der Zeichenfolge für die Währungseingabe sind
Im Eingangsereignis Ich rufe bereits für einige andere ungültige Eingabe mit einem einfachen regulären Ausdruck ersetzen:
input.replace(/[^0-9\.\,\-]/g, '')
.replace('.', ',');
Es wäre toll, wenn ich diese Regex auch die ungültigen minusen verlängern könnte abzuzustreifen.
Einige Beispiele für das gewünschte Verhalten:
50-50
->5050
50,00-
->50,00
-5-0,-
->-50,-
Edit: Doppel minus am Ende oder Anfang sollte auch abgestreift werden.
--50,00
->-50,00
50,--
->50,-
Ich dachte, ich mit einem positiven Look-Ahead beginnen konnte -(?=.)
, aber das passt immer noch das erste Zeichen.
Zusätzlich fand ich this post, dass ziemlich genau das Gegenteil tut (Minus sind nicht erlaubt am Anfang und Ende), aber das würde immer noch die ganze Zeichenfolge übereinstimmen. Nicht die Sepatate Minuspunkte.
Jede Hilfe wäre willkommen.
Das sieht vielversprechend aus, aber es würde immer noch ein doppeltes Minus am Anfang und am Ende zulassen. Vielleicht war mir das nicht klar. Die Frage wurde aktualisiert. – ndoes
eigentlich, ja, deine Frage war nicht klar genug wie für doppelte Bindestriche. Jetzt überprüfe mein Update, es funktioniert auch für doppelte Bindestriche – RomanPerekhrest
Excellent. Vielen Dank. – ndoes