js判斷字符長度 漢字算兩個字符


方法一:使用正則表達式,代碼如下:

function getByteLen(val) {
            var len = 0;
            for (var i = 0; i < val.length; i++) {
                 var a = val.charAt(i);
                 if (a.match(/[^\x00-\xff]/ig) != null) 
                {
                    len += 2;
                }
                else
                {
                    len += 1;
                }
            }
            return len;
        }

 

方法二:使用字符unicode判斷:方法如下:

function getByteLen(val) {
            var len = 0;
            for (var i = 0; i < val.length; i++) {
               var length = val.charCodeAt(i);
               if(length>=0&&length<=128)
                {
                    len += 1;
                }
                else
                {
                    len += 2;
                }
            }
            return len;
        }



function queryTask(){
    var taskNameQueryLength = getByteLen($("#taskNameQuery").val().trim());
    if(taskNameQueryLength>4){
        jAlert("任務名稱長度為0-160位,其中中文算兩個字符!", "系統提示");
        return;
    }
    var scanTargetQueryLength = getByteLen($("#scanTargetQuery").val().trim());
    if(scanTargetQueryLength>4){
        jAlert("掃描目標長度為0-65535位!", "系統提示");
        return;
    }
    gridQuery();
    
}
function getByteLen(val) {
    var len = 0;
    for (var i = 0; i < val.length; i++) {
         var patt = new RegExp(/[^\x00-\xff]/ig);
         var a = val[i];
         if (patt.test(a)) 
        {
            len += 2;
        }
        else
        {
            len += 1;
        }
    }
    return len;
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM