if(obj.value.length<6 || obj.value.length>20){
alert("提示:‘登录名长度:6~20位’");这段代码判断不了中文,文本框里面输入11个汉字就应该弹出提示.可以判断不了,只能判断字母!
求大师帮忙,怎么写既可以判断字母又可以判断汉字!

解决方案 »

  1.   

    //计算包含英文与汉字的字符串长度
    function countCharacters(str){
        var totalCount = 0; 
        for (var i=0; i<str.length; i++) { 
            var c = str.charCodeAt(i); 
            if ((c >= 0x0001 && c <= 0x007e) || (0xff60<=c && c<=0xff9f)) { 
                 totalCount++; 
             }else {     
                 totalCount+=2; 
             } 
         }
        // alert(totalCount);
        return totalCount;
    }//计算字符串中汉字长度
    function countChineseCharacterLen(str){
    var totalCount = 0; 
        for (var i=0; i<str.length; i++) { 
            var c = str.charCodeAt(i); 
            if ((c >= 0x0001 && c <= 0x007e) || (0xff60<=c && c<=0xff9f)) {}
       else {     
                 totalCount++; 
             } 
         }
        return totalCount;
    }
    //计算字符窜中英文字符长度
    function countEnglishCharacterLen(str){
    var totalCount = 0; 
        for (var i=0; i<str.length; i++) { 
            var c = str.charCodeAt(i); 
            if ((c >= 0x0001 && c <= 0x007e) || (0xff60<=c && c<=0xff9f)) {
                 totalCount++; 
             } 
         }
        return totalCount;
    }
      

  2.   

     var s ='好';
      for(var i = 0; i < s.length; i++)
                if(s.charCodeAt(i) < 0x4E00 || s.charCodeAt(i) > 0x9FA5) {
                    console.alert("输入非中文,请重新输入") ; 
                    break ;
                }else{
                console.log("aa");
                }
      

  3.   

     var s ='好';
      for(var i = 0; i < s.length; i++)
                if(s.charCodeAt(i) < 0x4E00 || s.charCodeAt(i) > 0x9FA5) {
                    console.alert("输入非中文,请重新输入") ; 
                    break ;
                }else{
                console.log("aa");
                }