En el contexto de la consulta a la que se hace referencia en el título, "Javascript RegEx no funciona ", un usuario encontró un problema en el que una expresión regular (regEx) devolvía constantemente falso, independientemente del valor de entrada. El fragmento de código proporcionado en la consulta es el siguiente:
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
}
}
}
El usuario intentó validar las entradas del año utilizando una expresión regular y experimentó resultados inesperados. A pesar de probar este código en varios editores en línea, RegEx continuó arrojando resultados falsos.
Solucionando el problema:
La raíz del problema radica en el método utilizado para crear el objeto RegEx. Al definir una expresión regular a partir de una cadena, los caracteres de barra invertida se deben duplicar para evitar una interpretación incorrecta durante el proceso de análisis. Para rectificar esto, se debe utilizar el siguiente código:
var regEx = new RegExp("^(0[1-9]|1[0-2])//\\d{4}$", "g");
Como alternativa, se recomienda utilizar la sintaxis RegEx directamente, lo que elimina la necesidad de duplicar barras invertidas:
var regEx = /^(0[1-9]|1[0-2])//\\d{4}$/g;
Al implementar estas modificaciones, RegEx ahora debería funcionar según lo previsto, validando las entradas de año y proporcionando datos precisos. resultados.
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3