Textarea lines

by int32_t

HTML

<div id="count"></div>
<form>
<textarea name=ta wrap=hard autofocus></textarea>
</form>

JavaScript

const count = document.querySelector('#count');
const ta = document.querySelector('textarea');

function updateCount() {
  const lines = new FormData(ta.form).get('ta').split('\n');
  const len = lines[lines.length - 1] == '' ? lines.length - 1 : lines.length;
  count.textContent = `${len} line(s)`;
}
ta.addEventListener('input', updateCount);
new ResizeObserver(entries => {
  updateCount();
}).observe(ta);
updateCount();