2016-08-14 24 views
1

2桁の小数点以下2桁を検証しようとしていますが、それを達成できません。 これは正規表現と私はtryiedエラーと私は思いました:Laravel double validation正規表現が機能しない

まず試してみてください。

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

エラー:

preg_match(): Unknown modifier '+'

2回目の試行:

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

エラー:

preg_match(): Delimiter must not be alphanumeric or backslash

3回目:

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

エラー:Simple regular expression for a decimal with a precision of 2

私が間違っているの何を:私はこの質問からすべての正規表現を持っ

preg_match(): Delimiter must not be alphanumeric or backslash

?または、2つの小数点以下の桁数を使用してdoubleを検証する方法が他にもありますLaravel

+1

'$検証= [「価格」=>「正規表現を試してみてください/ [0-9] +(\。[0-9] [0-9]?)?/ ']; ' –

+0

@WiktorStribiżewありがとう、それは動作しますが、2つ以上の小数点以下を防ぐ方法はありますか? – pableiros

+1

「1.233」ではなく「1.22」だけを許可することを意味していますか? $ validation = ['price' => 'regex:/^[0-9] +(\。[0-9] [0-9]?)?$ /']; ' –

答えて

2

正規表現の区切り文字を使用する必要があります。最も一般的なものは/.../です。また、あなたは文字列全体と一致していることを確認するために、あなたが最後に係留する開始時と$固定するアンカー、^を必要とする:

$validation = ['price' => 'regex:/^[0-9]+(\.[0-9][0-9]?)?$/']; 
関連する問題