As expressões regulares são incrivelmente poderosas, mas podem ser difíceis de manter. Elas são uma habilidade que se aprende no trabalho e, quando os engravatados passam, fazem com que o senhor pareça incrivelmente inteligente se tiver algumas na tela. Como podemos resolver o problema da manutenção? Com grupos de correspondência, como Addy Osmani me explicou na semana passada:
Tip: You can name capture groups for Regular Expressions in JavaScript. Define a named capture in angle brackets <> and they get returned under .groups. pic.twitter.com/Fmj1B9Dgl0
— Addy Osmani (@addyosmani) April 24, 2021
Veja o ?<descriptor>
com o padrão descriptor
sendo um nome significativo que o senhor deseja atribuir a um determinado grupo. Com o uso do grupo, o senhor pode lidar de forma mais inteligente com os resultados da correspondência:
const re = /(?\d{4})-(? \d{2})-(? \d{2})/; const result = re.exec('2021-04-26'); // Deconstructing from result.groups const { year, month, day } = result.groups; // Using array syntax const [, year, month, day] = result;
A única desvantagem real de usar essa estratégia é que a maioria dos desenvolvedores provavelmente não sabe disso. O senhor também pode reclamar que isso torna a expressão regular mais longa. No entanto, no final das contas, a facilidade de manutenção é o que manda, e eu adoro o fato de a Addy ter compartilhado essa dica conosco!
7 Funções essenciais do JavaScript
Lembro-me dos primeiros dias do JavaScript, quando era preciso uma função simples para quase tudo, porque os fornecedores de navegadores implementavam recursos de forma diferente, e não apenas recursos de ponta, mas também recursos básicos, como
addEventListener
eattachEvent
. Os tempos mudaram, mas ainda existem algumas funções que todo desenvolvedor deve…
dwProgressBar v2: Etapas e eventos
O dwProgressBar foi um grande sucesso quando foi lançado. Para os senhores que não viram minha primeira postagem, dwProgressBar é uma barra de progresso baseada no MooTools 1.2 que permite o máximo de flexibilidade possível. Cada parte da dwProgressBar pode ser controlada por CSS…