JS區分中英文字元的兩種方法: 正則和charCodeAt()方法

lingxyd_0發表於2011-09-22

 

 

 


JS區分中英文字元的兩種方法: 正則和charCodeAt()方法。

正則無疑是最強大的判斷各種條件的方法, 最近也在研習它, 雖然枯燥, 但仍有樂趣. 用它來判斷一個雙位元組的中文字元也是輕而易舉地. 而判斷中文字元,  簡單且執行效率高.


 

regExpForm.onblur=function(){
        entryVal=this.value;
        entryLen=entryVal.length;
        cnChar=entryVal.match(/[^\x00-\x80]/g);//利用match方法檢索出中文字元並返回一個存放中文的陣列
        entryLen =cnChar.length;//算出實際的字元長度
    }


 


第二種方法是通過charCodeAt()方法判斷Unicode碼值, 若大於255即為中文字元, 它的執行效率沒有正則高, 也沒有正則簡單.


 

entryVal=this.value;
        entryLen=entryVal.length;
        for(var i=0;i<entryVal.length;i  ){
            if(entryVal.charCodeAt(i)>255){//遍歷判斷字串中每個字元的Unicode碼,大於255則為中文
                cnArr.push(entryVal[i]);//講符合條件的值插入到中文字元陣列中
                //注意一個小bug,push是向陣列的末尾新增一個或多個元素並返回新的長度,所以未重新整理的情況下反覆blur會累加字元值
            }
        }
        entryLen =cnArr.length;


 

 

 

相關文章