"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 teste JavaScript RegEx falha?

Por que o teste JavaScript RegEx falha?

Publicado em 2024-11-10
Navegar:113

Why Does JavaScript RegEx Testing Fail?

Falha no teste do JavaScript RegEx: decodificando o problema

No domínio do JavaScript, um desenvolvedor encontrou um dilema intrigante: seu padrão de expressão regular consistentemente produziu resultados falsos para qualquer entrada. Ao compartilhar seu código com editores on-line, ele funcionou surpreendentemente conforme planejado. Um exame mais detalhado revelou o culpado: tratamento inadequado da barra invertida.

Originalmente, o desenvolvedor definiu a expressão regular como uma string:

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

No entanto, ao construir uma expressão regular a partir de uma string, é crucial duplicar cada caractere de barra invertida. Isso ocorre porque o analisador interpreta a string literal e aplica suas próprias regras para barras invertidas, resultando em uma expressão modificada que difere do padrão pretendido.

Ao omitir a duplicação da barra invertida, o padrão se tornou:

^(0[1-9]|1[0-2])/d{4}$

Em vez disso, as barras invertidas devem ser duplicadas dentro da string:

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

Esta modificação garante que o analisador interprete o padrão corretamente, permitindo que ele reconheça o formato desejado por meses e anos.

Além disso, vale a pena considerar o uso direto da sintaxe de expressão regular:

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

Isso elimina a necessidade de interpolação de strings e fornece uma sintaxe mais intuitiva para expressar o padrão.

Declaração de lançamento Este artigo foi reimpresso em: 1729229116 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