"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Por qué JavaScript RegEx no puede validar las entradas?

¿Por qué JavaScript RegEx no puede validar las entradas?

Publicado el 2024-11-03
Navegar:192

Why is JavaScript RegEx Failing to Validate Inputs?

Luchas con la funcionalidad RegEx en Javascript: un estudio de caso de "Regex no funciona"

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.

Declaración de liberación Este artículo se reimprime en: 1729229298 Si hay alguna infracción, comuníquese con [email protected] para eliminarla.
Último tutorial Más>

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