有时需要判断一个字符是不是汉字, 比如在用户输入含有中英文的内容时, 需要判断是否超过规定长度就要用到. 用 JavaScript 判断通常有两种方法.
JavaScript 判断字符是否是中文的方法:
方法一,
用正则表达式判断:
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/
- DTD/xhtml1-transitional.dtd">
- <HTML xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
- <title>
- JS 判断字符是否是汉字
- </title>
- <style type="text/CSS">
- .content{ width:350px; overflow:hidden; border:1px solid #ddd; }
- </style>
- <script language="javascript" type="text/javascript">
- function CheckChinese(obj, val) {
- var reg = new RegExp("[\\u4E00-\\u9FFF]+", "g");
- if (reg.test(val)) {
- alert("不能输入汉字!");
- var strObj = document.getElementById(obj);
- strObj.value = "";
- strObj.focus();
- }
- }
- </script>
- </head>
- <body>
- <div class="content">
- <div>
- 测试字符:
- <input id="test" type="text" onblur="CheckChinese('test',this.value)"
- />
- </div>
- </div>
- </body>
- </HTML>
方法二, 用 Unicode 字符范围判断
以下方法是用于统计输入字符串的长度, 如果是汉字, 则字符串长度加 2 ; 否则字符串长度加 1.
- function chkstrlen(str)
- {
- var strlen = 0;
- for(var i = 0;i <str.length; i++)
- {
- if(str.charCodeAt(i)> 255) // 如果是汉字, 则字符串长度加 2
- strlen += 2;
- else
- strlen++;
- }
- return strlen;
- }
来源: http://www.css88.com/qa/javascript/11071.html