如何只允许字母和enye

时间:2015-12-15 16:06:03

标签: php laravel laravel-5

我在哪里将enye放入正则表达式验证中?我只是把它放在正则表达式的字母旁边吗? 我想接受fname,lname和mname中的enyes。

return [
                    'fname' => 'required|max:255|regex:/^[a-zA-Z\s]+$/',
                    'lname' => 'required|max:255|regex:/^[a-zA-Z\s]+$/',
                    'mname' => 'max:255|alpha',
                     'file' => 'image|mimes:jpg,jpeg,png',
               'contact_no' => 'regex:/^[-0-9\+]+$/',
            'date_of_birth' => 'required|date_format:Y-m-d',
                'school_id' => 'required|exists:schools,id',
                'degree_id' => 'required|exists:degrees,id',
        ];

2 个答案:

答案 0 :(得分:0)

感谢答案的人,但我得到了它的工作。我刚用过

return [
                    'fname' => 'required|max:255|regex:/^[a-zA-ZÑñ\s]+$/',
                    'lname' => 'required|max:255|regex:/^[a-zA-ZÑñ\s]+$/',
                    'mname' => 'max:255|alpha',
                     'file' => 'image|mimes:jpg,jpeg,png',
               'contact_no' => 'regex:/^[-0-9\+]+$/',
            'date_of_birth' => 'required|date_format:Y-m-d',
                'school_id' => 'required|exists:schools,id',
                'degree_id' => 'required|exists:degrees,id',
        ];

答案 1 :(得分:0)

enye需要匹配的字节取决于字符串的字符编码(希望它是utf8)。因此,您需要一个多字节编码感知的正则表达式函数。幸运的是,PHP有'em ...

$pattern = '/^[ñÑa-zA-Z\s]+$/';
mb_regex_encoding('UTF-8');
mb_ereg($pattern, $testString, $matches);

其中$pattern的正则表达式使用UTF8编码输入enye。