1
resposta

Explicação expressão regular

Vi que muita gente não entendeu o que foi feito na expressão regular, então tentarei explicar.

"//" delimita o início e o fim da expressão regular;

"\s" busca por 1 espaço em branco;

"\S" busca por 1 caractere que não seja espaço em branco;

"+" busca o que está à sua esquerda 1 ou + vezes.

Assim, \S+ busca por 1 ou + caracteres sem espaço(s) em branco.

Exemplo:

"Eu sou feliz"

As ocorrências encontradas serão "eu", "sou" e "feliz", isto é, 1 ou + caracteres que não possuem espaços em branco em sua composição ("eu sou" não pode ser uma ocorrência pois tem um espaço em branco ali no meio).

Show. Agora vamos ao split. Ele divide a string de acordo com o que foi especificado dentro dos parênteses. No nosso caso, ele irá usar como separador as ocorrências da Regex.

Portanto, o retorno de $(".campo-digitacao").val().split(/\S+/) será um array cujos elementos são espaços em branco, já que utilizamos como separador as ocorrências da Regex, isto é, os caracteres que não sejam espaços em branco.

Retornando ao exemplo anterior:

"Eu sou feliz"

O array retornado será: ["", " ", " ", ""]

Essas strings vazias ("") são o "espaço" antes de "Eu" (começo da string) e o "espaço" após "feliz" (final da string).

Perceba que seu length é 4, apesar de termos 3 palavras. Por isso, subtraímos 1.

1 resposta

Fala Dante, tudo bem? Espero que sim!

Achei ótima a sua explicação! Explicou muito bem sobre Expressões regulares.

Vou dar apenas alguns complementos.

Aqui na Alura temos o curso Expressões regulares: Capturando textos de forma mágica que nos ensina desde o inicio como trabalhar com expressões regulares, demonstrando até como utiliza-la em outras linguagens ou até mesmo para buscar arquivos no seu sistema.

Também recomendo bastando a documentação do JavaScript sobre Expressões Regulares que há um tópico sobre algumas dessas letrinhas usadas em uma regex.

Espero ter ajudado, abraços e bons estudos :D

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software