2016-08-14 4 views
1

Ich versuche, ein Doppel mit zwei Dezimalzahlen zu validieren, aber ich kann das nicht erreichen. Dies ist die regex und die Fehler, die ich tryied und ich bekam:Laravel doppelte Validierung Regex funktioniert nicht

Erster Versuch:

$validation = ['price' => 'regex:[0-9]+(\.[0-9][0-9]?)?']; 

Fehler:

preg_match(): Unknown modifier '+'

Zweiter Versuch:

$validation = ['price' => 'regex:[0-9]+(\.[0-9][0-9]?)?']; 

Fehler:

preg_match(): Delimiter must not be alphanumeric or backslash

Dritter Versuch:

$validation = ['price' => 'regex:\d+(\.\d{2})?|\.\d{2}']; 

Fehler:

preg_match(): Delimiter must not be alphanumeric or backslash

Ich habe alle der reguläre Ausdruck dieser Frage: Simple regular expression for a decimal with a precision of 2

Was mache ich falsch? Oder gibt es eine andere Möglichkeit, ein Doppel mit zwei Dezimalzahlen in Laravel zu validieren?

+1

Versuchen '$ Validierung = [‚Preis‘=>‚regex:/[0-9] + (\. [0-9] [0-9]?)?/']; ' –

+0

@ WiktorStribiżew Danke, es funktioniert, aber ist es eine Möglichkeit, mehr als zwei Dezimalstellen zu verhindern? – pableiros

+1

Sie meinen, nur '1,22' und nicht' 1,233' zu erlauben? Versuchen Sie '$ validation = ['price' => 'regex:/^ [0-9] + (\. [0-9] [0-9]?)? $ /'];' –

Antwort

2

Sie müssen Regex-Trennzeichen verwenden, die gebräuchlichsten sind /.../. Auch, um sicherzustellen, dass Sie die gesamte Zeichenfolge übereinstimmen, Sie Anker benötigen, ^ am Start zu verankern und $ am Ende zu verankern:

$validation = ['price' => 'regex:/^[0-9]+(\.[0-9][0-9]?)?$/']; 
Verwandte Themen