Php 验证Laravel 5中的阿拉伯数字
我有一个表单,其中包含一个字段,供用户输入特定付款的金额值。此字段为输入类型编号 Laravel中此输入的验证规则为:Php 验证Laravel 5中的阿拉伯数字,php,validation,laravel-5,Php,Validation,Laravel 5,我有一个表单,其中包含一个字段,供用户输入特定付款的金额值。此字段为输入类型编号 Laravel中此输入的验证规则为: 'amount' => 'required|numeric' 当我以英文输入金额时:1500=>验证通过,一切正常 但当我以阿拉伯语输入金额时:١٠٠=>验证失败,并显示以下错误消息: “验证。数字” 我应该手动验证此字段还是有其他解决方案 也许您可以创建自己的验证类型 您可以在app/Providers/AppServiceProvider.php中向引导方法添加类似
'amount' => 'required|numeric'
当我以英文输入金额时:1500=>
验证通过,一切正常
但当我以阿拉伯语输入金额时:١٠٠=>
验证失败,并显示以下错误消息:
“验证。数字”
我应该手动验证此字段还是有其他解决方案
也许您可以创建自己的验证类型 您可以在
app/Providers/AppServiceProvider.php
中向引导方法添加类似的内容
Validator::extend('arabic_numbers', function ($attributes, $value, $parameters, $validation) {
$arabic_numbers = [
'٥',
'١',
// add more
];
$input = $value;
if (!$input) {
return false;
}
$chars = preg_split('//u', $input, -1, PREG_SPLIT_NO_EMPTY);
foreach ($chars as $char) {
if (!in_array($char, $arabic_numbers)) {
return false;
}
}
return true;
});
您可以添加到现有规则中,例如,必需的|阿拉伯数字
或者使用类似的方法:
$input = '١';
$validator = Validator::make([
'user_input' => $input,
], [
'user_input' => 'required|arabic_numbers'
];
if ($validator->fails()) {
//
}
您还可以在许多其他方式中使用,例如在自定义请求中:
public function rules()
{
return [
'something' => 'required|arabic_numbers',
];
}
希望这能有所帮助。谢谢您的回复。我的结论是:将阿拉伯数字转换成英文数字,然后应用普通的验证器“required | numeric”。