Tengo el siguiente código javascript:
function checkLegalYear() {
var val = "02/2010";
if (val != "") {
var regEx = new RegExp("^(0[1-9]|1[0-2])/d{4}$", "g");
if (regEx.test(val)) {
//do something
}
else {
//do something
}
}
}
Sin embargo, mi prueba regEx siempre devuelve falso para cualquier valor que pase (02/2010). ¿Hay algo mal en mi código? He probado este código en varios editores de javascript en línea y funciona bien.
Respuestas
38 para la respuesta № 1Debido a que estás creando tu expresión regular a partir de una cadena, debes duplicar tus barras invertidas:
var regEx = new RegExp("^(0[1-9]|1[0-2])/\d{4}$", "g");
Realmente no hay razón para no usar la sintaxis de expresión regular en su lugar:
var regEx = /^(0[1-9]|1[0-2])/d{4}$/g;
editar - También noté que hay un carácter "/" incrustado, que debe citarse si usa la sintaxis de expresiones regulares.