asp正则验证是否汉字的三种Pattern的区别

asp正则验证汉字以下三种都可以使用,它们之间的区别在哪儿?

1 "^[^\u0000-\u00FF]*$"


2 "^[\u0391-\uFFE5]+$"


3 "^([\u4e00-\u9fa5]+$)

用 \u****在正则里就表示一个unicode编码(通常用0x****的形式表示),而你提出的三种正则,区别就是范围的大小:
1 是指除了\u0000到\u00FF 之外的所有字符,而 0000 - 00FF 就是我们常说的ASCII码及一些补充字符,因而用这个正则来判定是否是中文是很不严谨的,所有的双字节字符都会返回真,比如日文。

2 这个编码范围我没有看到过,不过查了查unicode编码表,似乎没有特别的说明。不过单从范围上来说,它所包含的区间恰好涵盖了 3 里的范围,因而它的范围比单纯验证中文的范围要大,所以可以验证通过,但也包含了不是中文的部分字符。

3 这个就是我们常用的验证中文的unicode范围(\u4e00-\u9fa5),包含中、日、韩中包含的所有常用汉字,因而用这个区间来验证汉字是最准确的:

P.S. 另外还有一种中文的范围的说法是 4E00-9FBF,而这个是指CJK统一表意符号 (CJK Unified Ideographs),它是unicode里划分的一个区间块,也是最接近纯中文的范围,仅次于 3 的范围。CJK当然就是指 Chinese, Japanese和Korea。



上一篇: ASP计算页面执行时间
下一篇: PHP中多线程抓取网页
文章来自: 本站原创
引用通告: 查看所有引用 | 我要引用此文章
Tags:
相关日志:
评论: 0 | 引用: 0 | 查看次数: 1798
发表评论
昵 称:
密 码: 游客发言不需要密码.
邮 箱: 邮件地址支持Gravatar头像,邮箱地址不会公开.
网 址: 输入网址便于回访.
内 容:
验证码:
选 项:
虽然发表评论不用注册,但是为了保护您的发言权,建议您注册帐号.
字数限制 1000 字 | UBB代码 开启 | [img]标签 关闭

 广告位

↑返回顶部↑