laravel 正则表达式验证 utf-8(土耳其字母)
laravel regex validation utf-8 (Turkish letter)
我正在使用 laravel 编写网站代码。但我陷入了正则表达式验证,因为我的语言看起来不受正则表达式支持(可能我不能)。有很多方法可以使用 PHP 检查正则表达式,但我想使用 Laravel(4.2) 验证器检查规则。这是我不工作的代码。
........
$name = Input::get('academy_name');
$rules = array(
'academy_name' => array('required','unique:academies,name,' . $name,'regex:/^([a-zA-Z0-9şŞıİçÇöÖüÜĞğ]+[\ \-]?)+[a-zA-Z0-9]+$/')
);
$validate = Validator::make(Input::all(), $rules);
$messages = $validate->messages();
if ($validate->fails()) {
.............
如您所见,我想使用“üğÜĞişİŞçöÇÖı”字母。感谢所有的回答和想法。
编辑:
@henrik 根据您的建议,我将研究重点放在 PHP 上,终于找到了答案。这非常简单,我只是将 /im 添加到正则表达式的末尾,它就像一个魅力。这是我的最终验证:
$rules = array(
'resource_name' => array('required', 'unique:resources,name,' . $name, 'regex:/^([0-9a-zA-ZÇŞĞÜÖİçşğüöı]+[\ \-]?)+[a-zA-Z0-9]+$/im'),
'category' => 'required',
'file' => 'required',
'class' => 'required'
);
尝试验证英语以外的任何语言时使用 Unicode 字符验证。
例如,表达式/^[\u0041-\u007A]+$/
将验证从0041到007A的任何字符,对应于拉丁字母表。
请参阅 this chart 以确定您的语言和相应的字符范围。
编辑:正如下面的评论所示,这与 laravel
无关
您可以使用 \p{L}
允许任何 Unicode 字符或 \p{Latin}
允许任何拉丁字母:
/^([0-9\p{Latin}]+[\ \-]?)+[a-zA-Z0-9]+$/
我正在使用 laravel 编写网站代码。但我陷入了正则表达式验证,因为我的语言看起来不受正则表达式支持(可能我不能)。有很多方法可以使用 PHP 检查正则表达式,但我想使用 Laravel(4.2) 验证器检查规则。这是我不工作的代码。
........
$name = Input::get('academy_name');
$rules = array(
'academy_name' => array('required','unique:academies,name,' . $name,'regex:/^([a-zA-Z0-9şŞıİçÇöÖüÜĞğ]+[\ \-]?)+[a-zA-Z0-9]+$/')
);
$validate = Validator::make(Input::all(), $rules);
$messages = $validate->messages();
if ($validate->fails()) {
.............
如您所见,我想使用“üğÜĞişİŞçöÇÖı”字母。感谢所有的回答和想法。
编辑:
@henrik 根据您的建议,我将研究重点放在 PHP 上,终于找到了答案。这非常简单,我只是将 /im 添加到正则表达式的末尾,它就像一个魅力。这是我的最终验证:
$rules = array(
'resource_name' => array('required', 'unique:resources,name,' . $name, 'regex:/^([0-9a-zA-ZÇŞĞÜÖİçşğüöı]+[\ \-]?)+[a-zA-Z0-9]+$/im'),
'category' => 'required',
'file' => 'required',
'class' => 'required'
);
尝试验证英语以外的任何语言时使用 Unicode 字符验证。
例如,表达式/^[\u0041-\u007A]+$/
将验证从0041到007A的任何字符,对应于拉丁字母表。
请参阅 this chart 以确定您的语言和相应的字符范围。
编辑:正如下面的评论所示,这与 laravel
无关您可以使用 \p{L}
允许任何 Unicode 字符或 \p{Latin}
允许任何拉丁字母:
/^([0-9\p{Latin}]+[\ \-]?)+[a-zA-Z0-9]+$/