Solución:
Prueba esto:
1990-2010:
/^(199d|200d|2010)$/
1950 – 2050:
/^(19[5-9]d|20[0-4]d|2050)$/
Otros ejemplos:
[1945-2013:
/^(194[5-9]|19[5-9]d|200d|201[0-3])$/
1812 – 3048:
/^(181[2-9]|18[2-9]d|19dd|2d{3}|30[0-3]d|304[0-8])$/
Básicamente, necesitas dividir tu rango en fragmentos fáciles de “expresiones regulares”:
1812-3048: 1812-1819 + 1820-1899 + 1900-1999 + 2000-2999 + 3000-3039 + 3040-3048
regex: 181[2-9] 18[2-9]d 19dd 2d{3} 30[0-3]d 304[0-8]
RegExp no parece ser la herramienta adecuada aquí. Si tiene los valores del año ya aislados, seguramente una simple comparación funcionaría:
if (+yr >= 1990 && +yr <= 2010)
los +yr
convierte la cadena en un número
Para un rango de 1950 a 2050, puede usar la siguiente expresión regular:
^19[5-9]d|20[0-4]d|2050$
Demostración en línea
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)