javascript 統計輸入框英文字母個數、數字個數、中文個數
<!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 匹配出所有英文,不能直接匹配中文,因此只有用整個字符串的長度減去數字個數再減去除中文外其余字符的個數就得出中文的個數
可能我水平有限,用了這么齷齪的一個方法,如有更好、更直接,請大家踴躍給我!
<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 匹配出所有英文,不能直接匹配中文,因此只有用整個字符串的長度減去數字個數再減去除中文外其余字符的個數就得出中文的個數
可能我水平有限,用了這么齷齪的一個方法,如有更好、更直接,請大家踴躍給我!
posted @ 2012-04-15 11:10 人地個仔 閱讀(574) | 評論 (0) | 編輯 收藏