JSFiddle - React, Tailwind, and code Playground
by KEN73CHEN
HTML
<textarea cols=50 rows=10 id='content'>這是一個測試 this is a test</textarea>
<br><span id='cnt'>0</span> 字
JavaScript
document.id('content').addEvent('keyup', count).fireEvent('keyup');
function count() {
var c = document.id('content').get('value').replace(/\s{2,}/g, " ").split('');
var cnt = '';
var re = /[^\x00-\xff]/ig;
c.each(function(w) {
if (re.test(w)) {
cnt += ' '+w+' ';
} else {
if (w != "\r" && w != "\n")
cnt += w;
else cnt += ' ';
}
});
cnt = cnt.replace(/\s{2,}/g, " ").replace(/^\s/g, "").replace(/\s$/g, "").split(' ').length;
document.id('cnt').set('text',cnt);
}