Validate only alphanumeric characters in Laravel

后端 未结 4 570
野的像风
野的像风 2021-02-08 17:26

I have the following code in my Laravel 5 app:

public function store(Request $request){
    $this->validate($request,          


        
相关标签:
4条回答
  • 2021-02-08 18:00

    Might be easiest to use the built in alpha-numeric validation:

    https://laravel.com/docs/5.2/validation#rule-alpha-num
    
    $validator = Validator::make($request->all(), [
        'filename' => 'alpha_num',
    ]);
    
    0 讨论(0)
  • 2021-02-08 18:15

    You need to make sure the pattern matches the whole input string. Also, the alphanumeric and an underscore symbols can be matched with \w, so the regex itself can be considerably shortened.

    I suggest:

    'regex:/^[\w-]*$/'
    

    Details:

    • ^ - start of string
    • [\w-]* - zero or more word chars from the [a-zA-Z0-9_] range or -s
    • $ - end of string.

    Why is it better than 'alpha_dash': you can further customize this pattern.

    0 讨论(0)
  • 2021-02-08 18:17

    use laravel rule,

        public function store(Request $request){
        $this->validate($request, ['filename' => 'alpha_dash']);
    }
    

    Laravel validation rule for alpha numeric,dashes and undescore

    0 讨论(0)
  • 2021-02-08 18:17

    You forgot to quantify the regex, it also wasn't quite properly formed.

    public function store(Request $request){
        $this->validate($request, ['filename' => 'regex:/^[a-zA-Z0-9_\-]*$/']);
    }
    

    This will accept empty filenames; if you want to accept non-empty only change the * to +.

    0 讨论(0)
提交回复
热议问题