Saltar al contenido

Validar el número de móvil usando la anotación de Hibernate

Este artículo fue probado por expertos para asegurar la exactitud de nuestro tutorial.

Solución:

@Size(min=10,max=10) haría el trabajo si por espacio en blanco quiere decir null.

si no pones @NotNull anotación, null el valor pasaría la validación.

Si su espacio en blanco significa Cadena vacía, entonces necesita usar @Pattern validador:

@Pattern(regexp="(^$|[0-9]10)")

esto coincide con vacío string o número de 10 dígitos.

Tal vez podría mejorar la respuesta sugerida con el uso de libphonenumber de Google Code para validar sus números de teléfono.

Para aquellos que buscan un validador personalizado para números de teléfono usando libphonenumber

PhoneNumber.java libphonenumber requiere configuración regional para la validación, por lo que debemos crear una clase personalizada para almacenar el teléfono y el código de región

public class PhoneNumber 

  @NotEmpty
  private String value;

  @NotEmpty
  private String locale;

Anotación @Phone Se usará para anotar campos para validación

import javax.validation.Constraint;
import javax.validation.Payload;
import java.lang.annotation.*;

@Documented
@Constraint(validatedBy = PhoneNumberValidator.class)
@Target(  ElementType.METHOD, ElementType.FIELD )
@Retention(RetentionPolicy.RUNTIME)
public @interface Phone 
String locale() default "";

String message() default "Invalid phone number";
Class[] groups() default ;
Class[] payload() default ;

PhoneNumberValidator.java Comprobará la validez del teléfono para el código de región proporcionado

import javax.validation.ConstraintValidator;
import javax.validation.ConstraintValidatorContext;

public class PhoneNumberValidator implements ConstraintValidator 

    @Override
    public void initialize(Phone constraintAnnotation) 

    

    @Override
    public boolean isValid(PhoneNumber phoneNumber, ConstraintValidatorContext context)  phoneNumber.getValue()==null)
            return false;
        
        try
            PhoneNumberUtil phoneNumberUtil = PhoneNumberUtil.getInstance();
            return phoneNumberUtil.isValidNumber(phoneNumberUtil.parse(phoneNumber.getValue(), phoneNumber.getLocale()));
        
        catch (NumberParseException e)
            return false;
        
      
    

Uso

@Phone
private PhoneNumber phone;

Reseñas y puntuaciones del tutorial

Si piensas que ha resultado útil nuestro post, nos gustaría que lo compartas con más entusiastas de la programación de esta forma nos ayudas a dar difusión a este contenido.

¡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 *