WEB开发网
开发学院软件开发C语言 Effective C# 原则39:使用.Net验证 阅读

Effective C# 原则39:使用.Net验证

 2009-02-19 08:15:40 来源:WEB开发网   
核心提示: 表5.1 常用的正则表达式构造含意[a-z]匹配单个小写字符,括号内的字符集中的任何字符与单个字符匹配,Effective C# 原则39:使用.Net验证(2),d任何数字,^,$^表示串的开始, $表示结束,交换局号(exchange ),以及号码,w匹配任何单词.这是[A-Za-z0

表5.1 常用的正则表达式

构造含意

[a-z]匹配单个小写字符。括号内的字符集中的任何字符与单个字符匹配。

d任何数字。

^,$^表示串的开始, $表示结束。

w匹配任何单词.这是[A-Za-z0-9]简写。

(?NamedGroupd{4,16})显示两个不同的常用元素,?NamedGroup 定义了一个特殊的变量来引用匹配。{4,16}匹配前面的构造至少4次最多16次。这一模式匹配一个至少包含4个但不超过16个数字的字符串。如果匹配存在,那么结果会存储在NamedGroup中以便后面使用。

(a|b|c)匹配a或b或c。 用坚线分开的是选择操作:输入的可是其中的任何一个。

(?(NamedGroup)a|b) 可选的。这与C#里的三元操作等效,也就是说,如果NamedGroup 存在,匹配a,否则匹配b.

(译注,关于正则表达式这里只是简单的说明了一下。觉得作者在这里写正则表达式很是不伦不类,即不全也不精。)

使用这些及正则表达式的构造,你可以发现你可以验证用户提交给你的任何内容。如果正则表达式还不够,你还可以通过从CustomValidator 派生一个新在类添加你自己的验证。这是一个不小的工作,而且我尽可能的避免它。当你用C#写了一服务器函数来验证数据后,还要用ECMAscript写一个客户端的验证函数。我讨厌同样的事做两遍,而且我也尽可能的避免用ECMAscript写任何内容,所以,我喜欢粘贴正则表达式式。

例如,这有一个正则表达式,用于验证US的电话号码。它接受区号用括号括起来的,或者没有括号的,然后就是区号和号码之间的空格,交换局号(exchange ),以及号码。区号和交换局号之间的横线也是可选的:

(((s*d{3}s*))|(d{3}))-?s*d{3}s*-s*d{4}

通过查验每一个组的表达式,这样的逻辑是很清楚的:

上一页  1 2 3 4  下一页

Tags:Effective 原则 使用

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接