A substituição de uma substring de texto em uma string maior sempre foi enganosa em JavaScript. Eu escrevi Substituir todas as ocorrências de uma cadeia de caracteres em JavaScript anos atrás e ainda é um dos meus artigos mais lidos.

A confusão está no fato de que replace substitui apenas a primeira ocorrência de uma substring, e não a todos ocorrências. Por exemplo:

'yayayayayaya'.replace('ya', 'na');
// nayayayayaya

Para substituir todas as instâncias de uma substring, o senhor precisou usar uma expressão regular:

'yayayayayaya'.replace(/ya/g, 'na');
// nananananana

O uso de expressões regulares é certamente poderoso, mas sejamos honestos: muitas vezes, queremos apenas substituir todas as instâncias de uma simples substring que não deveria exigir uma expressão regular.

Felizmente, este ano a linguagem JavaScript nos forneceu String.prototype.replaceAllum método de substituição sem usar expressões regulares:

'yayayayayaya'.replaceAll('ya', 'na');
// nananananana

Às vezes, uma API existe em um formato confuso e os órgãos de padronização simplesmente precisam melhorar a situação. Fico feliz que tenham feito isso com o replaceAll!

  • API JavaScript Promise

    Embora o código síncrono seja mais fácil de acompanhar e depurar, o assíncrono geralmente é melhor em termos de desempenho e flexibilidade. Por que “atrasar o show” quando o senhor pode acionar várias solicitações de uma só vez e processá-las quando cada uma estiver pronta? As promessas estão se tornando uma grande parte do mundo JavaScript…

  • Crie raios giratórios com CSS3: Revisitado
  • Plug-in MooTools Zebra Tables

    Muitas vezes, os dados tabulares podem ser entediantes, mas não precisam ter essa aparência! Com uma pequena classe do MooTools, posso tornar os dados tabulares extremamente fáceis de ler implementando tabelas “zebra” – tabelas com cores de fundo de linhas alternadas.

  • Detecção de iPad usando JavaScript ou PHP

    O dispositivo mais badalado no momento parece ser o iPad: iPad isso, iPad aquilo, iPod para sua mãe. Não estou muito satisfeito com o dispositivo, mas isso não significa que eu não deva tentar levar em conta esses dispositivos nos sites que crio. No site da Apple…