"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 a função de substituição do JavaScript limita as substituições apenas à primeira instância?

Por que a função de substituição do JavaScript limita as substituições apenas à primeira instância?

Publicado em 2024-11-11
Navegar:883

Why Does JavaScript\'s Replace Function Limit Replacements to the First Instance Only?

Por que a função de substituição do Javascript substitui apenas a primeira instância

Ao usar replace() em JavaScript, você pode encontrar uma situação em que ela substitui apenas a primeira instância de uma string de destino. Essa aparente inconsistência decorre do comportamento padrão da função.

Compreendendo o comportamento de replace()

Por padrão, replace() encontra e substitui a primeira ocorrência de uma substring especificada dentro de uma string. Se você deseja substituir todas as instâncias, você precisa especificar o sinalizador g (global) na expressão regular.

Exemplo: definindo o sinalizador g

Considere o exemplo fornecido na pergunta:

var date = $('#Date').val(); // Gets value "12/31/2009"
var id = 'c_'   date.replace("/", ''); // Replaces only the first "/", resulting in "c_1231/2009"

Para substituir todas as instâncias da barra (/), use o sinalizador g:

var id = 'c_'   date.replace(new RegExp("/", "g"), ''); // Replaces all "/" with "", resulting in "c_12312009"

Como alternativa, você pode usar uma sintaxe mais simples:

var id = 'c_'   date.replace(/\//g, ''); // Equivalent to the previous line

Ao definir o sinalizador g, a expressão regular corresponde a todas as ocorrências da string de destino e as substitui pelo novo valor especificado. Esse comportamento garante que todas as instâncias sejam substituídas conforme pretendido.

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