Saltar al contenido

¿Cómo validar el número de teléfono en laravel 5.2?

Solución:

Una posible solución sería utilizar expresiones regulares.

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

Esto verificará que la entrada comience con 01 y sea seguida por 9 números. Al usar regex no necesita el numeric o size reglas de validación.

Si desea reutilizar este método de validación en otro lugar, sería una buena idea crear su propia regla de validación para validar números de teléfono.

Documentos: validación personalizada

En tus AppServiceProvider‘s boot método:

Validator::extend('phone_number', function($attribute, $value, $parameters)
{
    return substr($value, 0, 2) == '01';
});

Esto le permitirá utilizar el phone_number regla de validación en cualquier lugar de su aplicación, por lo que la validación de su formulario podría ser:

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

En la extensión de su validador también puede verificar si el $value es numérico y tiene 11 caracteres de longitud.

Desde Laravel 5.5 en adelante, puede usar un comando artesanal para crear una nueva regla que puede codificar con respecto a sus requisitos para decidir si pasa o falla.

Ej:
php artisan make:rule PhoneNumber

Entonces edita app/Rules/PhoneNumber.php, en pases de método

/**
 * Determine if the validation rule passes.
 *
 * @param  string  $attribute
 * @param  mixed  $value
 * @return bool
 */
public function passes($attribute, $value)
{

    return preg_match('%^(?:(?:(?(?:00|+)([1-4]dd|[1-9]d?))?)?[-. \/]?)?((?:(?d{1,})?[-. \/]?){0,})(?:[-. \/]?(?:#|ext.?|extension|x)[-. \/]?(d+))?$%i', $value) && strlen($value) >= 10;
}

Luego, use esta regla como lo haría normalmente con la validación:

use AppRulesPhoneNumber;

$request->validate([
    'name' => ['required', new PhoneNumber],
]);

docs

Validator::extend('phone', function($attribute, $value, $parameters, $validator) {
        return preg_match('%^(?:(?:(?(?:00|+)([1-4]dd|[1-9]d?))?)?[-. \/]?)?((?:(?d{1,})?[-. \/]?){0,})(?:[-. \/]?(?:#|ext.?|extension|x)[-. \/]?(d+))?$%i', $value) && strlen($value) >= 10;
    });

Validator::replacer('phone', function($message, $attribute, $rule, $parameters) {
        return str_replace(':attribute',$attribute, ':attribute is invalid phone number');
    });

Uso

Inserte este código en el app/Providers/AppServiceProvider.php para que se inicie con su aplicación.

Esta regla valida el número de teléfono contra el patrón dado arriba que encontré después
búsqueda larga, coincide con los números de teléfono o móviles más comunes en muchos países
Esto le permitirá utilizar el phone regla de validación en cualquier lugar de su aplicación, por lo que la validación de su formulario podría ser:

 'phone' => 'required|numeric|phone' 

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *