机房收费系统技术盘点--正则表达式
现在,我正在写机房收费系统VB.NET版,也没写多少,刚写了4个功能(而且还有一个功能现在还出错,没调试出来)。有些地方感觉写的还行,有的地方还需要改进。我说说,我在机房收费系统中用的一些感觉比较好的东西。 首先是正则表达式,只要Imports System.Text.RegularExpressions就可以使用正则表达式了, 但是其实我对正则表达式知道的并不多。在这我把我用到的列举一下,有兴趣的可以看这个——正则表达式30分钟入门教程。 我现在用到的就是^,$(分别是数字键6和4上的),这两个是表示匹配的开始和结束。使用的时候最好把这两个加上,因为像是d是匹配数字的,如果我写了这样一个正则匹配“d{2}”,表示匹配两位数字,那么输入的字符串中只要有两个连续的数字,就可以通过验证;那么这样一个字符串“23wowne”,验证也是可以通的过的。但是写上^$,变成这样“^d{2}$”,上面那个字符串“23wowne”,是通不过验证的。 还有就是d(匹配数字),w(匹配字母或数字或下划线或汉字),据说,D表示匹配任意非数字的字符,W表示匹配任意不是字母,数字,下划线,汉字的字符,我没用过。这个内容是在“正则表达式30分钟入门教程”反义中。
还有就是重复次数,学名叫限定符。我常用的就是{n},重复N次和{n,m},重复n到m次。
具体代码是这样的,网上也有很多。这是登录窗体,然后控制用户名和密码的输入。机房收费系统中,这样的验证挺多地方都用的上,可以写成一个方法。或者利用一个循环遍历,将窗体上用的上的控件都遍历一遍,检查格式。但是这样的if嵌套会比较多,逻辑会变复杂,不好,还是一个一个检查吧! Imports System.Text.RegularExpressions '正则表达式 Public Class frmLogin Private Sub btnLogin_Click(ByVal sender As System.Object,ByVal e As System.EventArgs) Handles btnLogin.Click '正则表达式,控制输入 Dim patternUserID As String Dim patternPassword As String '对于正则表达式的定义,重复过多 patternUserID = "^w{5,20}$" patternPassword = "^w{5,15}$" '验证用户名格式 If Not (Regex.Match(txtUserID.Text,patternUserID).Success) Then MessageBox.Show("用户名为长度为5-20的任意字母,数字,下划线") txtUserID.Focus() Exit Sub Else '验证密码格式 If Not (Regex.Match(txtPassword.Text,patternPassword).Success) Then MessageBox.Show("密码为长度为5-15的任意字母,下划线!") txtPassword.Focus() Exit Sub End If End If End Sub End Class 然后是,不是特别重要的,获得计算机名。由于VB版的时候获取本机名算是比较复杂,要用到API。而在VB.NET中只要一句话就能搞定,很是方便。System.Net.Dns.GetHostName。 ComputerName = System.Net.Dns.GetHostName 再来就是真的很简单的VS的一些应用,以前我没有用过,现在才注意到,觉得这些功能挺好的。 我在解决方法资源管理器中,选择了一个窗体文件,然后显示的就是这样一排工具, ,从左到右依次是属性,查看所有文件,刷新,查看代码,视图设计器,查看类图。 点击“查看所有文件”,就会出现红框中的文件,再次点击,多出的文件就会隐藏。点开这些文件,可以发现里面有很多的文件。但是,目前好像用处不大。只是,以前总奇怪,C#中,如果引用了什么,可以在引用文件夹中看到,但是VB.NET中没有引用文件夹,总也看不到引用了什么。现在发现原来他是有引用文件夹的。 然后就是查看类图,感觉这个功能挺好的。以后用来看每层的类关系,很方便。
再来就是SqlHelper,可以增加D层代码的复用率。但是我也不大会,下次再写~ (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |