Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

length + 1 ?

Na atividade é explicado que o segundo parâmetro de substring é exclusivo e é dado como exemplo o código

var string = "Alura";
var resultado = string.substring(1, 4);

Chegando ao valor lur. Até aí ok!

Mais pra frente é dada a solução :

var comparavel = nome.substr(0, this.value.length);
if (!(this.value == comparavel)) {
    paciente.classList.add("invisivel");
} else{
    paciente.classList.remove("invisivel");
}

Contudo, sendo exclusivo, uma vez que o último carácter seja incluído, caímos no caso else, deixando aplicado a classe "invisivel".

Para resolver esse problema, entendo que o código deveria conter a correção na primeira linha:

var comparavel = nome.substr(0, this.value.length + 1);

Faz sentido? Há coerência nesse raciocínio?

1 resposta
solução!

Olá Rafael, tudo bem com você?

A questão é que não precisamos do +1 dado que estamos pegando o valor utilizando o length que nos da um valor por quantidade

Então por exemplo, se fizéssemos

var palavra = "Alura";
var resultado = palavra.substring(1, palavra.length);

Teríamos que palavra.length seria 5, no caso:

0 : A
1: L
2: U
3: R
4: A

Dessa forma conseguímos capturar corretamente do 1 até a última letra, dado que pegará até o 4

A mesma coisa vai acontecer quando estamos trabalhando no exercício com a regex, se o usuário digitar Douglas

nome.substring( 0, this.value.length)

Teremos um length de 7, e da mesma maneira, como estamos capturando do inicio (0) até o 6, iremos pegar todas as letras do nome sem problema, se fizermos o mesmo processo do "Alura" vamos ver que Douglas termina no índice 6 :)

0: D
1: O
2: U
3: G
4: L
5: A
6: S

Se colocamos this.value.length +1 teremos um outro comportamento, que é de capturar apenas quando digitamos toda a palavra, pois se digitarmos D, teremos uma substring de 0 até 2, no caso DO e não haveria o match, apenas quando todo o nome fosse digitado, pois ai teríamos a "substring" máxima que seria o nome completo :)

Conseguiu Compreender?

Resumidamente, como estamos utilizando o length e ele irá trabalhar com quantidade natural, ao invés de índices, não precisamos fazer a adição do +1

Abraços e Bons Estudos!