Вы можете удалить пробел из начала / конца с помощью trim()
, а затем разделить с помощью 1+ пробельных символов:
s.trim().split(/\s+/).length
Или вы можете использовать подход с подходом для подсчета всех порций непробельных символов:
document.getElementById("wordcount").value = s.match(/\S+/g)?.length || 0;
JS демо (с дополнительной цепочкой):
(countWords=()=>{
s = document.getElementById("inputString").value;
document.getElementById("wordcount").value = s.match(/\S+/g)?.length || 0;
})()
<textarea name="inputString" id="inputString" cols="50" rows="4">Text to count</textarea>
<br>
<input type="button" name="Convert" value="Count Words" onClick="countWords();">
<input name="wordcount" id="wordcount" type="text" value="" size="6">
JS демо (без дополнительной цепочки):
(countWords=()=>{
s = document.getElementById("inputString").value;
var m = s.match(/\S+/g);
document.getElementById("wordcount").value = (m ? m.length : 0);
})()
<textarea name="inputString" id="inputString" cols="50" rows="4">Text to count</textarea>
<br>
<input type="button" name="Convert" value="Count Words" onClick="countWords();">
<input name="wordcount" id="wordcount" type="text" value="" size="6">