JSFiddle - React, Tailwind, and code Playground

by Miklos Nagy

HTML

<textarea name="" id="textarea" cols="30" rows="10"></textarea>
<div class="result"></div>

JavaScript

function wordCount( val ) {
var wom = val.match(/\S+/g);
return {
         nospace: val.replace(/\s+/g,'').length,
         allchar: val.length,
         words  : wom ? wom.length : 0,
         lines  : val.split(/\r*\n/).length
  }

}

var ta = document.getElementById("textarea");
var result   = document.getElementsByClassName('result');
    
ta.addEventListener("input", function(){
  var v = wordCount( this.value );
  result.innerHTML = (
      "<br>Characters (no spaces):  "+ v.charactersNoSpaces +
      "<br>Characters (and spaces): "+ v.characters +
      "<br>Words: "+ v.words +
      "<br>Lines: "+ v.lines
  );
}, false);