正则表达式对中文的判断

如何用正则表达式去判断是否中文字符,以及大致的原理

今天工作上面需要对一个表单进行验证,需要判断中文。在网上看到了很多的方式

1. GBK (GB2312/GB18030)
x00-xff  GBK双字节编码范围
x20-x7f  ASCII
xa1-xff  中文
x80-xff  中文

2. UTF-8 (Unicode)
u4e00-u9fa5 (中文)
x3130-x318F (韩文
xAC00-xD7A3 (韩文)
u0800-u4e00 (日文)
ps: 韩文是大于[u9fa5]的字符

 

x是十六进制,u是Unicode编码,这种理解对吗

两者之间有什么区别和联系呢

 

2012年8月15日补充

JavaScript的字符串是使用Unicode编码的,每个字符占用两个字节。编码的方式是Unicode 16,具体是Little-Endian还是Big-Endian则要看操作系统了。所以在针对JavaScript的字符串使用正则时,针对中文使用u4e00-u9fa5

参考文章:http://demon.tw/programming/javascript-unicode-utf-8.html

关于Unicode 16的Little-Endian和Big-Endian,可以参看维基百科:https://zh.wikipedia.org/wiki/%E5%AD%97%E8%8A%82%E5%BA%8F

作者: happyWang

Hello, the beautiful world

《正则表达式对中文的判断》有1个想法

  1. Pingback: fiuJRjNz

发表评论