"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Por que o JavaScript RegEx não consegue validar as entradas?

Por que o JavaScript RegEx não consegue validar as entradas?

Publicado em 2024-11-03
Navegar:460

Why is JavaScript RegEx Failing to Validate Inputs?

Lutas com a funcionalidade RegEx em Javascript: um estudo de caso de "Regex Not Working"

No contexto da consulta referenciada no título, "Javascript RegEx Not Working ," um usuário encontrou um problema em que uma expressão regular (regEx) retornava consistentemente falso, independentemente do valor de entrada. O snippet de código fornecido na consulta é o seguinte:

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
        }
    }
}

O usuário tentou validar entradas de ano usando um RegEx e obteve resultados inesperados. Apesar de testar esse código em vários editores on-line, o RegEx continuou retornando falso.

Resolvendo o problema:

A raiz do problema está no método usado para criar o objeto RegEx. Ao definir um RegEx a partir de uma string, os caracteres de barra invertida devem ser duplicados para evitar interpretações incorretas durante o processo de análise. Para corrigir isso, o seguinte código deve ser usado:

var regEx = new RegExp("^(0[1-9]|1[0-2])//\\d{4}$", "g");

Como alternativa, é recomendado usar a sintaxe RegEx diretamente, o que elimina a necessidade de duplicar barras invertidas:

var regEx = /^(0[1-9]|1[0-2])//\\d{4}$/g;

Ao implementar essas modificações, o RegEx deve agora funcionar como pretendido, validando as entradas do ano e fornecendo informações precisas resultados.

Declaração de lançamento Este artigo foi reimpresso em: 1729229298 Se houver alguma violação, entre em contato com [email protected] para excluí-lo
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3