如何区分出英文和中文的字符串的长度??急

在body的textarea里输入文字(中文或者英文),如何写一段JavaScript代码来判断textarea里的文字长度。要求:中文算两个字符,英文算一个字符。尝试使用length函数,但是该函数无法区分出长度,比如:“你好”和“ni”该函数都把它算成长度为:2。而我实际上想让其返回的结果值分别为:4和2。该如何处理??
---------------------------------------------------------------

//检查字符串中的汉字,每个汉字按两个字节计算,字节数不能大于maxlen,且可为空
function check_character2(theField,theAlert,maxlen)
{
var theValue=theField.value;
if(theValue.length==0) return true;
var bytelen=0;
var re=/[^\x00-\xff]/g;
re.compile();
for(var i=0;i

 1<thevalue.length;i++){ bytelen="bytelen+2;" bytelen+="1;" if(bytelen="" if(re.test(thevalue.charat(i)))="" {="" }="" }else{="">maxlen)   
 2{   
 3alert(theAlert+"输入长度大于"+maxlen+",请重新输入!");   
 4return false;   
 5}   
 6return true;   
 7}   
 8  
 9\---------------------------------------------------------------   
10  
11输入字符,提示字节数<input name="w" size="20" type="text"/><input name="B1" onclick="alert(w.value.replace(/[^\x00-\xff]/g,'**').length)" type="submit"/>   
12  
13\---------------------------------------------------------------   
14  
15不一定是中文才算两个字节,全角字符也会被算成两个字节。先把所有全角字符转化成半角,然后再取其length就可以知道字符串的长度了。   
16// 全角文字,半角文字的长度計算   
17function getLength(sCheck) {   
18var n = 0;   
19// 全角字符转化成半角   
20var str = toHankaku(sCheck);   
21var len = str.length;   
22for (var i = 0; i &lt; len; i++) {   
23// MSIE环境的全角文字判断   
24n += checkMZenKaKu(str.charAt(i)) ? 2 : 1;   
25}   
26return n;   
27}</thevalue.length;i++){>
Published At
Categories with Web编程
Tagged with
comments powered by Disqus