2017-04-04 5 views
-4

Ich muss einen Eingabefilter für ein Formular validieren, da ich die Ausgabe aufgrund der verwendeten Vorlage nicht formatieren kann. Dies ist ein Preisfeld und ich brauche eine einheitliche Ausgabe. Ich bin in der Lage, einen regulären Ausdruck zu verwenden, um die Eingabe zu validieren.Regulärer Ausdruck für ganze Zahl (Tausender Komma, keine Dezimalzahl)

Ich möchte Regex eine ganze Zahl mit Tausenden durch ein Komma getrennt sein. Keine Dezimalstelle. Nein $.

Gültig:

* 0 (just zero) 
* 100 
* 1,000 
* 10,000 

Unzulässig:

  • 01 (führende Null)
  • 100,50
  • 10.000 $
  • -10.000 (keine negative Zahl)

Weiß jemand, wie man das macht? Ich kann das nicht finden und dachte, es sollte ein allgemeiner Regex sein.

+0

was hast du versucht? Können Sie uns Ihre gescheiterten Regex-Muster mitteilen? – Forty3

+0

Starten Sie [hier] (http://Stackoverflow.com/questions/22937618/reference-what-does-this-regex-mean) und kommen Sie zu uns zurück, sobald Sie einen anständigen Versuch zu zeigen haben. –

Antwort

0

Ich glaube, Sie ähnelt,

Mit Javascript

^(0|[1-9][0-9]{0,2})(,[0-9]{3})*$ 
brauchen etwas,
+1

Danke Faysal. Das hat perfekt funktioniert. –

0

Sie diese Regex verwenden: ^(0|[1-9][0-9]{0,2})(,[0-9]{3})*$

Nachfolgend finden Sie eine Python-Implementierung:

import re 
regex = r"^(0|[1-9][0-9]{0,2})(,[0-9]{3})*$" 
num = "10,000" 
if re.search(regex, num): 
    print(True) 
else: 
    print(False) 
Verwandte Themen