[轉]js正則表達式之中文驗證



http://houfeng0923.iteye.com/blog/1035321

 

今天做表單提交的輸入框條件驗證,驗證是否包含中文;網上搜了一圈基於js正則表達式的驗證基本不好用,而且大多都是出自一兩篇原文的轉帖!到底什么才是拿來主義呢。根據搜索結果,本文取精華,告訴大家一個好用的中文驗證方法。

 

使用js正則表達式匹配中文,需要了解中文字符在unicode編碼中所處的區間。這樣才能夠了解表達式的匹配原理。

 

 

    首先在正則表達式中使用 Unicode,必須使用\u開頭,接着是字符編碼的四位16進制表現形式
簡單匹配中文方法: /[^\u0000-\u00FF]/ (匹配非單字節字符 )
另錯誤方法:/[^\u00-\uFF]/ (匹配 非單字節字符、還包括一些全半角符號如,.(){}'"!等、還有vwxyz字符)
說明: //u0000-u00ff.包含unicode單字節編碼( 0-255編碼)包含基本控制字符和拉丁文字母。 采用該否定表達式,粗略判斷是否含有中文。
 
具體的匹配中文及字符方法:/[\u4E00-\u9FA5\uF900-\uFA2D]/
說明: u4e00-u9fbf :  unicode CJK(中日韓)統一表意字符。u9fa5后至u9fbf為空 
uF900-uFAFF :  為unicode  CJK 兼容象形文字  。uFA2D后至uFAFF為空
具體可參考unicode編碼表:http://www.nengcha.com/code/unicode/class/

 

 
//是否含有中文(也包含日文和韓文) 
function isChineseChar(str){    
   var reg = /[\u4E00-\u9FA5\uF900-\uFA2D]/; 
   return reg.test(str); 
} 
//同理,是否含有全角符號的函數 
function isFullwidthChar(str){ 
   var reg = /[\uFF00-\uFFEF]/; 
   return reg.test(str); 
}  

 


免責聲明!

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



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