Was ist ein regulärer C # -Ausdruck, der die Währung, Float oder Integer validiert?

8

Was ist ein regulärer Ausdruck, der für C # geeignet ist, der eine Zahl validiert, wenn sie mit der folgenden übereinstimmt?

%Vor%

Oder die negativen Äquivalente?

    
nailitdown 06.03.2009, 06:26
quelle

7 Antworten

14

Sie können csmbas Regex verwenden, wenn Sie eine geringfügige Änderung daran vornehmen.

%Vor%     
gregwhitaker 06.03.2009, 06:42
quelle
5

Ich denke, ssg hat Recht. Es ist nicht wirklich eine gute Anwendung von Regex, vor allem, wenn Ihre Software mit nicht-US-zentrischer Dateneingabe zu tun hat.

Zum Beispiel, wenn das Währungssymbol der Euro ist, oder der japanische Yen oder das britische Pfund eines der anderen Dutzend Währungssymbole da draußen?

Was ist mit Zahlenformatierungsregeln?

In den USA würden Sie 1,000,000.00 eingeben, aber in Frankreich sollte dies 1.000.000,00 sein. Andere Länder erlauben den Abstand zwischen Zifferngruppierung ...

Wenn Sie einen direkten Regex verwenden, ohne die Kultur zu berücksichtigen, werden Sie niemals erfolgreich validieren, es sei denn, Sie sind hundertprozentig sicher, dass Ihre Software niemals in einem nicht-US-zentrischen Kontext verwendet wird.

>     
Renaud Bompuis 06.03.2009 06:49
quelle
3
%Vor%     
csmba 06.03.2009 06:37
quelle
2

Ich glaube, ich habe ein Problem mit der SSG-Lösung (oder vielleicht einem MS-Bug!) gefunden.

Ausführen:

%Vor%

Gibt wahr zurück. Sicher "0,2" ist kein gültiger Währungswert?

    
Ben Power 18.06.2012 07:14
quelle
1

Seien Sie vorsichtig mit Schwimmern. Schließlich werden Sie einen Fall wie 0,01 als 0,00999999 dargestellt. Strings oder Ganzzahlen sind besser zu verwenden.

    
Brian Carlton 06.03.2009 19:19
quelle
0

Versuchen Sie es. Es kann eine Feinabstimmung erforderlich sein, um nur einen Dezimalpunkt zuzulassen, aber es passt zu Ihren Testfällen. Ich hoffe, das hilft.

%Vor%     
James 06.03.2009 06:37
quelle
0

Verwenden Sie diesen regulären Ausdruck für die US-Währung \ $ (\ d) * \ d Entspricht 300 $, 12900 $ Non-Match $ 12900.00

    
Faiz Shaikh 24.04.2009 14:09
quelle

Tags und Links