我正在尝试计算textarea中的单词,基本上只是string.split(' ');
这种方法严重无望。我甚至无法弄清楚它在某些方面做了些什么。例如,我根本就没有文字,它给了我一个正数。
我不确定它是string.split(' ')
,方法还是<textarea>
的某些内容,或两者的某些不兼容性。
这是我的代码:
<body>
<textarea rows="14" cols="50" id="text">
</textarea>
<br/>
<br/>
<br/>
<br/>
<button onclick="show()">Analyze</button>
<div id="results">
</div>
<script>
var a1 = [];
var words = 0;
function show()
{
// GET WORDS
var s = document.getElementById("text").value;
a1 = s.split(' ');
words = a1.length;
document.getElementById("results").innerHTML = words;
}
</script>
</body>
答案 0 :(得分:4)
你在那里的换行仍然算在内!空格之间的空格也变成空字符串。
我会使用正则表达式,您可以根据您认为的单词轻松改变:
var WORD = /[a-zA-Z\d'’-]+/g;
⋮
var words = s.match(WORD).length;
答案 1 :(得分:0)
将不是数字,字母,下划线或撇号的所有内容转换为空格;然后将空格之间的事物计算为“单词”。
var numWords = myTextArea.replace(/[^\w'’]+/g,' ').split(/\s+/).length;