是否有验证来修剪句子中单词之间的空格?
例如,
有一个字段名,用户输入值如下:" jhon doe cool "
所以,如何修剪它,以便当它存储到数据库时,它看起来像这样:"jhon doe cool"
我知道trim()
函数,我已经尝试了this和this,但它只适用于开头和结尾的空白,而不是单词之间的空白
我在我的控制器中使用它来验证和输入数据库
$request->validate([
'name' => 'required|max:50',
'srn' => 'required|size:9',
'email' => 'required|email',
'major' => 'required',
]);
Student::create($request->all());
return redirect('/students')->with('status', 'Data successfully added!');
3条答案
按热度按时间dldeef671#
在Laravel 10.x
文件:https://laravel.com/docs/10.x/strings#method-str-squish
kcugc4gi2#
Laravel有一个正则表达式验证器。
在内部,此规则使用PHP preg_match函数。指定的模式应该遵循preg_match所要求的相同格式,因此也包括有效的分隔符。举例来说:'email' => 'regex:/^.+@.+$/i'.
注意:当使用regex / not_regex模式时,可能需要在数组中指定规则,而不是使用管道分隔符,特别是当正则表达式包含管道字符时。
https://laravel.com/docs/6.x/validation#rule-regex
所以:
“% s”匹配任何空格,“+”表示不限次数。
测试正则表达式的好工具:https://regex101.com/
P.s我还没有测试过,这将给予你正确的输出,但应该把你放在正确的道路上
68bkxrlz3#
在弄清楚并再次上网后,
我按照上面的链接i mentioned的方式,但我添加了几行代码,并使用
preg_replace
和str_replace
作为修剪delimeter,使用PHP artisan命令创建中间件文件来修剪请求数据,
php artisan make:middleware BeforeAutoTrimmer
然后编辑函数,将
array_walk_recursive
放在if语句中,然后调用trim函数,后面跟着preg_replace
和str_replace
,模式看起来像@凯尔answer带有trim方法的类看起来像这样:
它将自动删除额外的空白每输入到数据库