<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE>统计英文字母和中文个数</TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">
<script>
function myCount() {
var content = document.getElementById("myText").value;
//匹配英文字母
var reg1 = /[a-zA-z]/g;
var letterCount = 0;
if (content.match(reg1) != null) {
letterCount = content.match(reg1).length;
}
//匹配数字
var reg2 = /\d/g;
var numberCount = 0;
if (content.match(reg2) != null) {
numberCount = content.match(reg2).length;
}
//匹配中文
var reg3 = /[^\u4e00-\u9fa5]/g;
var englishCount = 0;
if (content.match(reg3) != null) {
englishCount = content.match(reg3).length;
var chineseCount = content.length - englishCount - numberCount;
}
var result = "英文字母的个数为:" + letterCount + "<br /><br />数字的个数为:"
+ numberCount + "<br /><br />中文的个数:" + chineseCount;
document.getElementById("result").innerHTML = result;
}
</script>
</HEAD>
<BODY>
<input type="text" id="myText" style="width: 300px;" />
<input type="button" id="verify" value="统计" onclick="myCount();" />
<br>
<br>
<h3>
结果:
</h3>
<div id="result" style="width: 300px; padding: 10px; overflow: hidden;"></div>
</BODY>
</HTML>
据我所知,javascript只能通过 /[^\u4e00-\u9fa5]/g 匹配出所有英文,不能直接匹配中文,因此只有用整个字符串的长度减去数字个数再减去除中文外其余字符的个数就得出中文的个数
可能我水平有限,用了这么龌龊的一个方法,如有更好、更直接,请大家踊跃给我!