快速业务通道

asp.net夜话之九:验证控件(一)

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-07-03

说明:

(1)由于在正则表达式中“\”、“?”、“*”等字符已经具有一定特殊意义,如果需要用它们的原始意义,则应该对它进行转义,例如希望在字符串中至少有一个“\”,那么正则表达式应该这么写:\\+。

(2)可以将多个元字符或者原义文本字符用括号括起来形成一个新的元字符,比如^(13)[0-9]\d{8}$表示任意以13开头的手机号码。

(3)另外对于中文字符的匹配是采用其对应的Unicode编码来匹配的,对于单个Unicode字符,如\u4e00表示汉字“一”, \u9fa5表示汉字“龥”,在Unicode编码中这分别是所能表示的汉字的第一个和最后一个的Unicode编码,在Unicode编码中能表示20901个汉字。

不要认为我记性好,我是从来不记这个的,每次用的时候我都会写一个小程序,查看其运行结果就行了。下面是我这个程序的代码:

using System;
using System.IO;
public class UnicodeDemo
{
public static void Main()
{
using (StreamWriter writer = new StreamWriter(new FileStream("Unicode.txt", FileMode.Create)))
{
int value = 0;
//从字符的所能表示的最小值到最大值进行遍历
for (char c = char.MinValue; c <= char.MaxValue; c++)
{
value = (int)c;
//按照 数值=Unicode值=字符 的方式写入到Unicode.txt文件中
//19968=\u4e00=一 即第一个汉字
//40869=\u9fa5=龥 即最后一个汉字
writer.WriteLine("{0}=\\u{1}={2}", value,value.ToString("x"), c);
}
}
}
}

将代码编译生成Windows下的控制台程序,运行会在上面会抛出异常,因为有些字符在笔者所使用的编码范围中无法表示,不过这不影响我们查看汉字的范围。最后生成的文件内容如下:

asp.net夜话之九:验证控件(一)

因为汉族的人名最少两个汉字(比如张三),最多四个汉字(比如东方不败),所以匹配汉族的人名可以用这样的形式:[\u4e00-\u9fa5]{2,4}。

{n} 匹配n个元字符 {n,} 匹配至少n个元字符 {n,m} 匹配n到m个元字符 + 匹配至少1个元字符,相当于{1,} ^ 字符串必须以指定的字符开始 $ 字符串必须以指定的字符结束

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号