Validate a phone number in Laravel

Viewed 13211

How would I go about validating a number in laravel.

I need the number stored in the following format 353861111111.

353 will be the prefix, and the user types in the rest. If the user types in 086, this is invalid.

3 Answers

You can use regex as:

'phone' => 'required|regex:/(353)[0-9]{9}/'

This checks for the pattern with starting with 353 followed by 9 digits having values from 0-9.

Or you can build a custom validator in boot method of AppServiceProvider.php:

Validator::extend('phone_number', function($attribute, $value, $parameters)

    {
        return substr($value, 0, 3) == '353';
    });

This will allow you to use the phone_number validation rule anywhere in your application, so your form validation could be:

'phone' => 'required|numeric|phone_number|size:11'

In your validator extension you could also check if the $value is numeric and 11 characters long.

Here is how I did it on an older Laravel 4 project we have to update from time to time:

'phone' => 'required|regex:/^\d{3}-\d{3}-\d{4}$/',

Try this regex expression:

'number' => 'required|regex:^[3][5][3][\d]{8}[\d]$'
Related