2012-05-17 28 views
5

Tengo una entidad llamada del usuario y quiero validar un campo de número de móvilValidar número de teléfono móvil usando Hibernate anotación

El campo de número de móvil no es obligatorio que puede ser dejado en blanco pero debe ser un número de 10 dígitos.

Si el usuario ingresa cualquier valor menos de 10 dígitos de longitud, se debe emitir un error.

A continuación se muestra mi clase de usuario.

public class User { 

    @Size(min=0,max=10) 
    private String mobileNo; 

} 

Cuando solía anotación @Sized como se mencionó anteriormente, podría validar valores que eran mayor que 10 pero si el usuario entró en menos de 10 dígitos se planteó ningún error.

Mi requisito es que, si el usuario dejó el campo mobileNo en blanco que es válido, pero si se ingresa un valor, la validación debe garantizar que el número ingresado sea de 10 dígitos y 10 dígitos solamente.

¿Qué anotación debo usar para este requisito?

Respuesta

17

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

Si no pone la anotación @NotNull, el valor null pasará la validación.

Si el blanco significa cadena vacía, entonces tienes que utilizar @Pattern validador:

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

esto se ajusta con una cadena vacía o 10 número de dígitos.

+0

Pero debido a que la mayoría de los marcos MVC vincularán una cadena vacía a un campo cuando el cuadro de texto correspondiente se deja en blanco, es posible que esto no resuelva el problema. Abordé un problema muy similar escribiendo mis propias anotaciones de validación. Otra cosa que podría considerar es usar una expresión @Pattern y regular para validar el campo. –

+0

¿Cómo podemos verificar si el número de teléfono no tiene guiones? Por ejemplo: 012-345-6789, dichos valores deben validarse –

3

Quizás puedas mejorar la respuesta sugerida con el uso de libphonenumber de Google Code para poder validar tus números de teléfono.

+0

Esto se ve como una gran biblioteca. Lo verificará para validar y convertir números. – djmj

+0

Sí lo es! ¡Por supuesto que puede! – ThierryB

Cuestiones relacionadas