Skip to content

Instantly share code, notes, and snippets.

@sanhuang
Created November 29, 2016 07:25
Show Gist options
  • Save sanhuang/a08448e64de59a2bfee53f9eb895bb70 to your computer and use it in GitHub Desktop.
Save sanhuang/a08448e64de59a2bfee53f9eb895bb70 to your computer and use it in GitHub Desktop.
繁簡體中文日文韓文的Unicode字元範圍

** 匹配Unicode字符的正則表達式

這裡是幾個主要非英文語系字符範圍(google上找到的):

  • 2E80~33FFh:中日韓符號區。收容康熙字典部首、中日韓輔助部首、注音符號、日本假名、韓文音符,中日韓的符號、標點、帶圈或帶括符文數字、月份,以及日本的假名組合、單位、年號、月份、日期、時間等。
  • 3400~4DFFh:中日韓認同表意文字擴充A區,總計收容6,582個中日韓漢字。
  • 4E00~9FFFh:中日韓認同表意文字區,總計收容20,902個中日韓漢字。
  • A000~A4FFh:彝族文字區,收容中國南方彝族文字和字根。
  • AC00~D7FFh:韓文拼音組合字區,收容以韓文音符拼成的文字。
  • F900~FAFFh:中日韓兼容表意文字區,總計收容302個中日韓漢字。
  • FB00~FFFDh:文字表現形式區,收容組合拉丁文字、希伯來文、阿拉伯文、中日韓直式標點、小符號、半角符號、全角符號等。
//利用漢字Unicode範圍來驗證是否為漢字的JavaScript函數
function checkchinese(str){
//漢字的範圍
var re1 = new RegExp(“^[u4E00-\u9fa5]*$")
var re2 = new RegExp(“^[uE7C7-uE7F3]*$")
var str = str.replace(/(^s*)|(s*$)/g,");
if (str == “){return false;}
if (!(re1.test(str) && (! re2.test(str)))){
return false;
}
return true;
}
// 怎麼判斷是否是字符
if(/[^x00-xff]/g.test(s)){
alert(“含有漢字");
}else{
alert(“全是字符");
}
// 怎麼判斷是否含有漢字
if(escape(str).indexOf(“%u")!=-1){
alert(“含有漢字");
}else{
alert(“全是字符");
}
// 只能輸入漢字,數字,英文大小寫,符號只允許,。!的正則表達式
String.prototype.existChinese = function() {
//[u4E00-u9FA5]為漢字﹐[uFE30-uFFA0]為全角符號
return /[u4e00-u9fa5]/.test(this);
}
if( /[^u4e00-u9fa5w,.]/.test(obj.value) )
obj.value="";
return false;
function SpecChar(obj) {
if(event.type=="keyup") {
if(/[^u4e00-u9fa5w,.]/.test(obj.value) )
obj.value=obj.value.substring(0,obj.value.length-1);
return false;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment