数据安全验证之正则表达式
来源:互联网 发布:淘宝雅思作文批改 编辑:程序博客网 时间:2024/06/05 14:18
这几天正在制作用户登陆这一块,用户登陆其中我觉得最烦人的就是输入数据的验证;虽然微软给了我们几个强的控件,但是自己写正则表达式那是相当的耗时间啊;在网上有很多人在网上发部了很多有用的正则表达式,可能以后会再次用到这些表达式,这里把它记录下来;通过验证控件并不是100%保险的,因为用户控件只是在客户端验证,有些无聊的人根本不通来那些来提交数据,所以我们还是要在服务端再次验证,这样正则表达式就成为了我们的重要工具啦.
通过这几天的努力我收集同时也自己写了几个正则表达式,Look:
从上面我们可以看到:"^"表示后面紧跟着的字符为开头;与之相对应的式"$"以紧跟前面的字符为结尾.但是要注意的式当"^"位于"[]"里时,表示"非"的意思,例如:[^AZ]表示不能为"AZ"中的任一个字符."[]"表示当中的一个字符."{}"可以取得一个范围,例如"{9}"表示9个,而"{1,9}"表示1到9个字符.
下面我们看看正则表达式在Asp.Net数据验证中的应用,第一个当然式在服务器验证控件中的应用了,很简单看下面的代码:
这样就能满足我们在客户端的验证,<asp:RegularExpression>控键很简单,ID和runat就不用多说了,ControlToValidate指的是要验证控件的ID,这里是UserName文本(TextBox)控件,ValidationExpression一看就知道要添上我们的正则表达式了.如果没有输入"*",但为通过验证时会显示ErrorMessage里的内容,当然要预先为显示这些东西留点空间的哦,不然效果会不好的哦.不过我们可以把所有错误的放在ValidationSummary控件中.
上面只能用于君子中,有些无聊的人不同过你的这些控件直接给你的服务器发信息,这样就可能有麻烦了,不用着急,我们可以在服务端添加一点东西:
是不是很Easy!我们有深入的研究过这个东东,如果有什么地方不正确请批评指正,谢谢!
通过这几天的努力我收集同时也自己写了几个正则表达式,Look:
1.验证用户名和密码:("^[a-zA-Z]/w{5,15}$")正确格式:"[A-Z][a-z]_[0-9]"组成,并且第一个字必须为字母6~16位;
2.验证电话号码:("^(/d{3.4}-)/d{7,8}$")正确格式:xxx/xxxx-xxxxxxx/xxxxxxxx;
3.验证身份证号(15位或18位数字):("^/d{15}|/d{18}$");
4.验证Email地址:("^/w+([-+.]/w+)*@/w+([-.]/w+)*/./w+([-.]/w+)*$");
5.只能输入由数字和26个英文字母组成的字符串:("^[A-Za-z0-9]+$") ;
6.整数或者小数:^[0-9]+/.{0,1}[0-9]{0,2}$
7.只能输入数字:"^[0-9]*$"。
8.只能输入n位的数字:"^/d{n}$"。
9.只能输入至少n位的数字:"^/d{n,}$"。
10.只能输入m~n位的数字:。"^/d{m,n}$"
11.只能输入零和非零开头的数字:"^(0|[1-9][0-9]*)$"。
12.只能输入有两位小数的正实数:"^[0-9]+(.[0-9]{2})?$"。
13.只能输入有1~3位小数的正实数:"^[0-9]+(.[0-9]{1,3})?$"。
14.只能输入非零的正整数:"^/+?[1-9][0-9]*$"。
15.只能输入非零的负整数:"^/-[1-9][]0-9"*$。
16.只能输入长度为3的字符:"^.{3}$"。
17.只能输入由26个英文字母组成的字符串:"^[A-Za-z]+$"。
18.只能输入由26个大写英文字母组成的字符串:"^[A-Z]+$"。
19.只能输入由26个小写英文字母组成的字符串:"^[a-z]+$"。
20.验证是否含有^%&',;=?$/"等字符:"[^%&',;=?$/x22]+"。
21.只能输入汉字:"^[/u4e00-/u9fa5]{0,}$"
22.验证URL:"^http://([/w-]+/.)+[/w-]+(/[/w-./?%&=]*)?$"。
23.验证一年的12个月:"^(0?[1-9]|1[0-2])$"正确格式为:"01"~"09"和"1"~"12"。
24.验证一个月的31天:"^((0?[1-9])|((1|2)[0-9])|30|31)$"正确格式为;"01"~"09"和"1"~"31"。
2.验证电话号码:("^(/d{3.4}-)/d{7,8}$")正确格式:xxx/xxxx-xxxxxxx/xxxxxxxx;
3.验证身份证号(15位或18位数字):("^/d{15}|/d{18}$");
4.验证Email地址:("^/w+([-+.]/w+)*@/w+([-.]/w+)*/./w+([-.]/w+)*$");
5.只能输入由数字和26个英文字母组成的字符串:("^[A-Za-z0-9]+$") ;
6.整数或者小数:^[0-9]+/.{0,1}[0-9]{0,2}$
7.只能输入数字:"^[0-9]*$"。
8.只能输入n位的数字:"^/d{n}$"。
9.只能输入至少n位的数字:"^/d{n,}$"。
10.只能输入m~n位的数字:。"^/d{m,n}$"
11.只能输入零和非零开头的数字:"^(0|[1-9][0-9]*)$"。
12.只能输入有两位小数的正实数:"^[0-9]+(.[0-9]{2})?$"。
13.只能输入有1~3位小数的正实数:"^[0-9]+(.[0-9]{1,3})?$"。
14.只能输入非零的正整数:"^/+?[1-9][0-9]*$"。
15.只能输入非零的负整数:"^/-[1-9][]0-9"*$。
16.只能输入长度为3的字符:"^.{3}$"。
17.只能输入由26个英文字母组成的字符串:"^[A-Za-z]+$"。
18.只能输入由26个大写英文字母组成的字符串:"^[A-Z]+$"。
19.只能输入由26个小写英文字母组成的字符串:"^[a-z]+$"。
20.验证是否含有^%&',;=?$/"等字符:"[^%&',;=?$/x22]+"。
21.只能输入汉字:"^[/u4e00-/u9fa5]{0,}$"
22.验证URL:"^http://([/w-]+/.)+[/w-]+(/[/w-./?%&=]*)?$"。
23.验证一年的12个月:"^(0?[1-9]|1[0-2])$"正确格式为:"01"~"09"和"1"~"12"。
24.验证一个月的31天:"^((0?[1-9])|((1|2)[0-9])|30|31)$"正确格式为;"01"~"09"和"1"~"31"。
从上面我们可以看到:"^"表示后面紧跟着的字符为开头;与之相对应的式"$"以紧跟前面的字符为结尾.但是要注意的式当"^"位于"[]"里时,表示"非"的意思,例如:[^AZ]表示不能为"AZ"中的任一个字符."[]"表示当中的一个字符."{}"可以取得一个范围,例如"{9}"表示9个,而"{1,9}"表示1到9个字符.
下面我们看看正则表达式在Asp.Net数据验证中的应用,第一个当然式在服务器验证控件中的应用了,很简单看下面的代码:
<asp:RegularExpressionValidator ID="RegularExpressionValidator1" ControlToValidate="UserName" ValidationExpression="^[a-zA-Z]/w{3,15}$" runat="server" ErrorMessage="用户名格式不正确" ToolTip="用户名格式不正确!">*</asp:RegularExpressionValidator>
这样就能满足我们在客户端的验证,<asp:RegularExpression>控键很简单,ID和runat就不用多说了,ControlToValidate指的是要验证控件的ID,这里是UserName文本(TextBox)控件,ValidationExpression一看就知道要添上我们的正则表达式了.如果没有输入"*",但为通过验证时会显示ErrorMessage里的内容,当然要预先为显示这些东西留点空间的哦,不然效果会不好的哦.不过我们可以把所有错误的放在ValidationSummary控件中.
上面只能用于君子中,有些无聊的人不同过你的这些控件直接给你的服务器发信息,这样就可能有麻烦了,不用着急,我们可以在服务端添加一点东西:
1using System;
2using System.Web;
3//一定记住引用此空间.
4using System.Text.RegularExpressions;
5
6namespace NexPlus.Validation{
7 public partial class Simple : System.Web.UI.UserControl
8 {
9 public Simple(){}
10 protected void Submit_Click(object sender, ImageClickEventArgs e)
11 {
12 if (Page.IsValid)
13 {
14 if(!Regex.IsMatch(UserName.Text,@"^[a-zA-Z]/w{5,17}$",RegexOptions.IgnorePatternWhitespace)){
15 UserName.Focus();
16 return;
17 }
18 //..
19 }
20 }
21 }
22}
2using System.Web;
3//一定记住引用此空间.
4using System.Text.RegularExpressions;
5
6namespace NexPlus.Validation{
7 public partial class Simple : System.Web.UI.UserControl
8 {
9 public Simple(){}
10 protected void Submit_Click(object sender, ImageClickEventArgs e)
11 {
12 if (Page.IsValid)
13 {
14 if(!Regex.IsMatch(UserName.Text,@"^[a-zA-Z]/w{5,17}$",RegexOptions.IgnorePatternWhitespace)){
15 UserName.Focus();
16 return;
17 }
18 //..
19 }
20 }
21 }
22}
是不是很Easy!我们有深入的研究过这个东东,如果有什么地方不正确请批评指正,谢谢!
- 数据安全验证之正则表达式
- 数据安全验证之正则表达式
- 正则表达式验证数据字
- IP验证之正则表达式
- 正则表达式之身份证号验证
- 正则表达式之身份证号码验证
- C#之正则表达式验证
- 正则表达式之 JS 验证
- 正则表达式之字符串验证
- 正则表达式之数字验证
- 正则表达式之邮箱验证
- C# 正则数据验证、安全、转换类
- 正则表达之----常用正则表达式验证
- 使用正则表达式进行xml数据验证
- 使用正则表达式进行xml数据验证
- 使用正则表达式验证本地化数据
- 使用正则表达式进行xml数据验证
- 使用正则表达式进行xml数据验证
- 快与慢[By tina]
- 个人的web开发心得(一)----------非常适合入门新手,都是常识
- 个人的web开发心得(二)----------非常适合入门新手,都是常识
- 个人的web开发心得(三)----------非常适合入门新手,都是常识
- 个人的web开发心得(四)----------非常适合入门新手,都是常识
- 数据安全验证之正则表达式
- DataList的模板演示,分列、分页、选择项
- 我的第一个Atlas例子
- 在asp.net中使用异步同步rss
- 三种方法实现实时切换CSS样式
- boost::call_traits
- xml在数据库中的应用
- MFC的生与死
- 怎样添加大的xml文件(By Dustin Metzgar)