laravel5.5のバリデーションで、本名など「全角文字のみ」入力したい時は、正規表現で半角英数字+半角カナ以外はOK!という感じで実装してみた。
以前に備忘録的に書いておいた自作記事を参考に実装してみた
ひらがな・カタカナ・漢字だけに限定したら、全角の1とか入力できなくてNG!う~む…。
1 |
name' => ['required', 'string', 'regex:/^[\p{Hiragana}|\p{Katakana}|\p{Han}|ー]+$/u'], |
発想の転換で、半角英数字(\x01-\x7E)+半角カナ(\x{FF61}-\x{FF9F})以外はOK!!って感じしたら、まあまあ上手く行ったけど、よく考えたら絵文字はスルーするな…。(今回はこれでOKにしよう)
1 2 3 |
// phpの正規表現では、unicodeのバイナリ指定が、標準とは表記が違うので注意! // \uXXXX → \x{XXXX} name' => ['required', 'string', 'regex:/^[^\x01-\x7E\x{FF61}-\x{FF9F}]+$/u'], |