Php Laravel-如何验证西里尔字母
我需要检查输入是否是utf-8西里尔字母。有这样的东西吗Php Laravel-如何验证西里尔字母,php,validation,laravel,cyrillic,Php,Validation,Laravel,Cyrillic,我需要检查输入是否是utf-8西里尔字母。有这样的东西吗 $this->validate($request, [ 'name' => 'required|cyrillic' ]); 如果没有,我如何实现这一点?您必须创建自己的自定义验证规则: 如果使用@Hearner的正则表达式遇到西里尔字符,则返回true。您可以向规则中添加正则表达式,但使用正则表达式时,应在数组中添加规则,因为字符在正则表达式中具有特殊意义: $this->validate($request,
$this->validate($request, [
'name' => 'required|cyrillic'
]);
如果没有,我如何实现这一点?您必须创建自己的自定义验证规则:
如果使用@Hearner的正则表达式遇到西里尔字符,则返回true。您可以向规则中添加正则表达式,但使用正则表达式时,应在数组中添加规则,因为
字符在正则表达式中具有特殊意义:
$this->validate($request, [
'name' => array('required', 'regex:/[А-Яа-яЁё]/u')
]);
试一试
在我的例子中,Laravel5.2验证与
[А-ЯЯ-Я]跳过一些符号,如:
“Уцц”等。
这不是一个绝妙的解决方案,但在我的情况下,它是正确的:
$text_regex = '/^[А-ЯЦцУуШшЩщФфЫыРрЭэЧчТтЬьЮюЪъХхЁа-яёa-zA-Z0-9\- @%;()\$\.\,\"\']+$/';
这不是问题的答案。这并不能回答Laravel问题。检查输入是否为西里尔字符和输入是否为UTF-8西里尔字符是两个不同的问题。将链接作为答案发布不是一个好主意。链接变得过时和无效。如果您还从链接中提取相关部分,那就更好了。感谢您的关注,使这一功能变得更好的是Validator::extend('cyrillic',function($attribute,$value,$parameters,$Validator){return preg_match('/[А-Яа-ггё]/u',$text)});而不是一般的
foo`stuff。这将为这个问题提供一个完整的答案
$this->validate($request, [
'name' => array('required', 'regex:/[А-Яа-яЁё]/u')
]);
$this->validate($request, [
'name' => ['required', 'regex:/^[А-Яа-яЁё]$/u'],
]);
$text_regex = '/^[А-ЯЦцУуШшЩщФфЫыРрЭэЧчТтЬьЮюЪъХхЁа-яёa-zA-Z0-9\- @%;()\$\.\,\"\']+$/';