Ver Mensaje Individual
  #3 (permalink)  
Antiguo 30/11/2014, 12:13
Pantaláimon
 
Fecha de Ingreso: julio-2006
Ubicación: Barcelona
Mensajes: 244
Antigüedad: 17 años, 9 meses
Puntos: 32
Respuesta: Expresion Regular en javascript

¡Está casi perfecto!

Cita:
1.- "MJRE" Son cuantro letras entre la A y la Z
Debería ser así:
Código Javascript:
Ver original
  1. [a-zA-Z]{4}
Cuidado con poner de A mayuscula a z minuscula porque entre medio hay caracteres que no son letras

Cita:
2.- "79" Es el año de nacimiento, por lo que pueden ser numeros del 0 al 9
Puede expresarse así:
Código Javascript:
Ver original
  1. [0-9]{2}
aunque un digito del 0 al 9 se puede expresar con el caracter escapado \d y quedar así:
Código Javascript:
Ver original
  1. \d{2}
y dos dígitos también se puede expresar como uno detrás del otro:
Código Javascript:
Ver original
  1. \d\d
Así que lo tienes bien. Sólo, si quieres, lo puedes acortar.

Cita:
3.- "11" Es el MES de nacimiento, por lo que el primer 1 solo puede ser 0 o 1 y el segundo 1 puede ser un numero del 0 al 9
Se puede expresar así:
Código Javascript:
Ver original
  1. [0-1]{1}[0-9]{1}
Aunque cuando un símbolo se repite una única vez ({1}) se puede obviar el número de repeticiones:
Código Javascript:
Ver original
  1. [0-1][0-9]
Y como un dígito de 0 al 9 se puede expresar como \d puede quedar así:
Código Javascript:
Ver original
  1. [0-1]\d
Incluso cuando se trata de indicar dos únicos caracteres (el 0 o el 1) en vez de un rango (del 0 al 1) se puede expresar [01] en vez de [0-1]
Código Javascript:
Ver original
  1. [01]\d

Cita:
4.- "22" es el DIA de nacimiento por lo que el primer 2 solo puede ser 0,1,2 o 3 y el segundo 2 puede ser un numero del 0 al 9
Tú lo tienes puesto así:
Código Javascript:
Ver original
  1. ([0-3]{1})([0-9]{1})
y esta bien, pero los paréntesis no son necesarios y puedes modificarlo según lo dicho anteriormente. El punto 5 también está bien.

Luego lo concatenas todos tal como has hecho y listos. Puedes obviar los paréntesis.

En resumen, lo tenías todo bien excepto el punto 1. Como mucho te falta pulirlo con las cosas que te he dicho.

Otra cosa será que según lo que te dice el enunciado, se permitan dias como el 39 y meses como el 00 ó 18. Pero esto no es problema tuyo, es problema de que el enunciado no es más concreto. De todas maneras, si el enunciado está puesto así es porque hacerlo más preciso seria demasiado complejo para alguien que empieza con expresiones regulares.

Edit: vaya, marlanga te me has adelantado, vuelves a estar activo por estos foros. Me alegro!

Un saludo!
__________________
github.com/xgbuils | npm/xgbuils

Última edición por Pantaláimon; 30/11/2014 a las 12:20