1
resposta

o que é '[\s\S]*?' ?

Eu acompanhei bem o raciocínio do professor, mas eu fiquei em dúvida do que se trata o código [\s\S]*? apresentado em:

public update(model: T): void {
        let template = this.template(model);
        if(this.escapar) {
            template = template
            .replace(/<script>[\s\S]*?<\/script>/, '')
        }
        this.elemento.innerHTML = template;
    }

Grato pela atenção!

1 resposta

Olá Victor Hugo. [\s\S]*? significa que estamos buscando por uma classe de caracteres que tenha:

  1. \s -> white space (espaço vazio)
  2. \S -> qualquer caractere que não seja um white space
  3. ** -> Nenhuma ou várias vezes

Nesse caso, o ? não é nescessário. Ele indica que determinado caractere ou classe seja opcional, apareça nenhuma ou 1 vez, mas já tem o quantifier ** indicando que a classe pode aparecer 0 ou mais vezes.

Deixo aqui minha recomendação desse treinamento: https://cursos.alura.com.br/course/expressoes-regulares