DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> JavaScript入門知識 >> 關於JavaScript >> 區分中英文字符的兩種方法(正則和charCodeAt())
區分中英文字符的兩種方法(正則和charCodeAt())
編輯:關於JavaScript     
比如這次用到的我先前介紹過的Vanadium表單驗證插件, 因為是E文中不存在占2個字符的字, 所以, 區分中英文字符就得自己擴展. 本文就將介紹兩種區分中英文字符的方法: 利用正則和charCodeAt方法區分中英文字符.

[Ctrl+A 全選 注:如需引入外部Js需刷新才能執行]
正則無疑是最強大的判斷各種條件的方法, 最近也在研習它, 雖然枯燥, 但仍有樂趣. 用它來判斷一個雙字節的中文字符也是輕而易舉地. 而判斷中文字符, Mr.Think也是非常推薦用這種方法的, 簡單且執行效率高.
核心代碼如下:
復制代碼 代碼如下:
regExpForm.onblur=function(){
entryVal=this.value;
entryLen=entryVal.length;
cnChar=entryVal.match(/[^\x00-\x80]/g);//利用match方法檢索出中文字符並返回一個存放中文的數組
entryLen+=cnChar.length;//算出實際的字符長度
}

第二種方法是通過charCodeAt()方法判斷Unicode碼值, 若大於255即為中文字符(為什麼? 請Google ). Mr.Think並不建議用這種方法的, 它的執行效率沒有正則高, 也沒有正則簡單.
核心代碼如下:
復制代碼 代碼如下:
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;
XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved