Learn or Die

生涯勉強。Macです。

バリデーションalpha_numを指定しても全角文字が通ってしまう問題

問題点

半角英数字以外はエラーにしたいので、バリデーションに「alpha_num」を追加したが、ひらがな等が通ってしまう。

<?php

$request->validate([
    'newpass'               => 'required | min:8 | alpha_num | confirmed '
]

解決策:正規表現を使う

regex正規表現を指定することで「半角英数字のみ」にできました。
regex…フィールドが指定された正規表現にマッチするものをバリデートする

<?php

$request->validate([
    'newpass'               => 'required | min:8 | regex:/^[0-9a-zA-Z]+$/ | confirmed '
]