Ale*_*mia 8 php regex laravel laravel-5 laravel-validation
我在Laravel 5应用程序中有以下代码:
public function store(Request $request){
$this->validate($request, ['filename' => 'regex:[a-zA-Z0-9_\-]']);
}
Run Code Online (Sandbox Code Playgroud)
我的意图是允许文件名中只包含字母数字字符,破折号和下划线.但是,我的正则表达式不起作用,即使只写一封信也没有.我究竟做错了什么?
Wik*_*żew 11
您需要确保模式匹配整个输入字符串.此外,字母数字和下划线符号可以匹配\w,因此正则表达式本身可以大大缩短.
我建议:
'regex:/^[\w-]*$/'
Run Code Online (Sandbox Code Playgroud)
细节:
^ - 字符串的开头[\w-]*- [a-zA-Z0-9_]范围或-s中的零个或多个字符$ - 字符串结尾.为什么它比'alpha_dash'以下更好:您可以进一步自定义此模式.
使用内置的字母数字验证可能是最简单的:
https://laravel.com/docs/5.2/validation#rule-alpha-num
$validator = Validator::make($request->all(), [
'filename' => 'alpha_num',
]);
Run Code Online (Sandbox Code Playgroud)
使用laravel规则,
public function store(Request $request){
$this->validate($request, ['filename' => 'alpha_dash']);
}
Run Code Online (Sandbox Code Playgroud)