<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">//考虑用户输入一段文字中既有中文又有英文还能有符号标点等总字数统计的问题</span>
//度娘好久没找见比较满意的实现,就自个动手写个小demo分享一下,希望能帮助到其他遇到此问题的童鞋们~
//-----------------------------------------------------------------------------------------------------------------------------------------------------------------------
//测试代码
//Hizy
<!DOCUTYPE html>
<html>
<head>
<title>Counter words Test</title>
</head>
<meta charset="UTF-8">
<style type="text/css">
body{ width: 80%; margin: 0 auto;}
.tarea{width: 90%; height:60%; margin: 0 auto;}
</style>
<script type="text/javascript">
$(document).keyup(function()
//先统计非中文//PS英文单词之间需要以空格区分
var str = $("#txarea").val();//取出textarea中的字符串
var strLength = 0;
if(str == "" || str == null) strLength = 0;
else strLength = str.length;
var i=0,j=0,c=0;
var t=/\w/gi; // 匹配26个字母
var bo=false;
for(i=0,j=i+1;j<=strLength;i=j++) {
if(t.test(str.substring(i,j))&&!bo){ //test() 方法用于检测一个字符串是否匹配某个模式
bo=true;
c++;
}
else if(!t.test(str.substring(i,j))){
bo=false;
}
}
//中文
str = str.replace(/[ ]/g,""); //去掉文本字符串中所有空格
var sWords = str.replace(/\w/g,"").length;//中文的个数
var temp = c + sWords;
$("#showCount").text(temp);
})
</script>
<body>
<h1>字数统计测试</h1>
<h2>已输入:<span id="showCount"></span>字</h2>
<div id="countWords">
<textarea id="txarea" class="tarea" value="Input here"></textarea>
</div>
</body>
</html>