1
resposta

[Bug] Problema regex

O enunciado diz para levar em consideração pelo menos dois nomes, porém a regex ^([A-Za-zÀ-ÖØ-öø-ÿ]+) ([A-Za-zÀ-ÖØ-öø-ÿ]+)$ leva em consideração apenas dois, se tiver um nome com mais de 2 nomes compostos não da match. o ideal seria algo como ^([A-Za-zÀ-ÖØ-öø-ÿ -]+){3,}$

1 resposta

Oi, Tiago! Tudo bem?

A regex ^([A-Za-zÀ-ÖØ-öø-ÿ]+) ([A-Za-zÀ-ÖØ-öø-ÿ]+)$ realmente só valida dois nomes, pois ela espera exatamente duas partes separadas por um espaço. Muito obrigada por compartilhar a sugestão com a nossa comunidade do fórum, tenho certeza que ajudará muitos colegas que possam estar com dificuldade!

Deixo também como sugestão uma regex que aceite nomes compostos por mais de duas partes, podendo usar uma expressão que permita múltiplas partes do nome, separadas por espaços:

^([A-Za-zÀ-ÖØ-öø-ÿ]+(?: [A-Za-zÀ-ÖØ-öø-ÿ]+)+)$

De forma que:

  • ^ e $: delimitam o início e o fim da string, garantindo que toda a string seja validada.
  • ([A-Za-zÀ-ÖØ-öø-ÿ]+): captura a primeira parte do nome, que deve conter pelo menos um caractere.
  • (?: [A-Za-zÀ-ÖØ-öø-ÿ]+)+: é um grupo não capturante que procura por uma ou mais partes adicionais do nome, cada uma precedida por um espaço.

Espero ter ajudado!

Um forte abraço e bons estudos!