Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Espaço como caractere?

Eu entendi que o split(/\S+/) não contaria o espaço vazio, entendi mal, ou estou fazendo algo errado? Porque eu escrevo "oi oi oi" o que daria três palavras e 6 caracteres, no entanto me dá 8 caracteres, porque conta cada espaço que dou entre uma palavra e outra.

var frase = $(".frase").text();
var numPalavras = frase.split(" ").length;
var tamanhoFrase = $("#tamanho-frase");
tamanhoFrase.text(numPalavras);

var campo = $(".campo-digitacao");

campo.on("input", function(){
    var conteudo = campo.val();


    var qtdPalavras = conteudo.split(/\S+/).length - 1;
    $("#contador-palavras").text(qtdPalavras);

    var qtdCaracteres = conteudo.length;
    $("#contador-caracteres").text(qtdCaracteres);



});
2 respostas
solução!

Oi Lidiane! Dá pra retirar os espaços vazios usando regex e replace. Ficaria assim:

var frase = $(".frase").text();
var numPalavras = frase.split(" ").length;
var tamanhoFrase = $("#tamanho-frase");
tamanhoFrase.text(numPalavras);

var campo = $(".campo-digitacao");

campo.on("input", function(){
    var conteudo = campo.val();


    var qtdPalavras = conteudo.split(/\S+/).length - 1;
    $("#contador-palavras").text(qtdPalavras);

    conteudo = conteudo.replace(/ /g,'');  // Acrescentei esta linha somente
    var qtdCaracteres = conteudo.length;
    $("#contador-caracteres").text(qtdCaracteres);

});

Valeu! Qualquer coisa me marca solucionado!

Muito Obrigada pela ajuda, solucionou meu problema.