web-dev-qa-db-ja.com

Laravel 10進数0-99.99を検証

Laravelにはdecimalの検証がないため、0 - 99.99の数値を検証するためにregexまたは他の検証方法が必要です。

私が試してみました

required|regex:^\d{0,2}(\.\d{1,2})?$/
required|regex:[1-9]\d?(\.\d\d?)?|0\.[1-9]\d?||0\.0[1-9]
required|regex:/[1-9]\d?(\.\d\d?)?|0\.[1-9]\d?||0\.0[1-9]/
required|regex:/[\d]{2}.[\d]{2}/
required|regex:/[\d]{0-2}.[\d]{0,2}/

0.05またはpreg_matchの不明な修飾子を入力しようとすると、「無効な形式」が表示されます。

regexの小数を検証するために必要なlaravelの助けをいただければ幸いです(小数の前後にオプションの値があります)

17
Kender

Laravel between検証ルールは実際には非常に強力であり、小数値も処理できます。したがって、正規表現を使用する必要はありません。

'required|between:0,99.99'
50
lukasgeiter

ルール間のlaravel(5?)は常に小数を解析する必要があります。正しく検証するには数値を追加する必要があります

'required|numeric|between:0,99.99',
62
grisgruis

これは、2つの10進精度を許可する数値で機能します。

function rules(){

   return [
   'field_name'=> array('regex:/^(?:d*.d{1,2}|d+)$/','min:1','max:10')
        ]; 
}
5
Neeraj Negi