机房重构--正则表达式
来源:互联网 发布:身份证号码找人软件 编辑:程序博客网 时间:2024/06/15 18:46
上一篇文章对输入框的内容是否为空做出了判断,这篇文章,将介绍一种方法,对输入框的字段内容作出限制---正则表达式
什么是正则表达式?
正则表达式,又称正规表示法、常规表示法,计算机科学的一个概念。正则表达式使用单个字符串来描述、匹配一系列符合某个句法规则的字符串。在很多文本编辑器里,正则表达式通常被用来检索、替换那些符合某个模式的文本。
正则表达式应用:
例如要在EMAIL格式的字符串(如wangyi@163.com)中分解出用户名和服务器名,可以定义如下的正则表达式(?<user>[^@]+)@(?<host>.+),然后使用相应的解析器进行解析,得到两个分组user组和host组,user组里存储用户名wangyi,host组里存放服务器名163.com,而用传统的方法是很难实现这种分解的。
在VB.NET中使用正则表达式必须先引入命名空间System.Text.RegularExpressions,该命名空间包含一下七个类:Regex、Match、MatchCollection、GroupCollection、CaptureCollection、Group、Capture。
Regex类表示不可变(只读)正则表达式类,设置待匹配字符串的模式。Match类表示正则表达式匹配操作的结果。MatchCollection 类表示成功的非重叠匹配的序列,即匹配后得到的字符串集合。在正则表达式中应用最多的就是这三个类。
实践篇:
下面是对注册用户的过程中,输入框内容进行限制。
首先,是在模块中封装正则表达式定义过程
- Imports System.Text.RegularExpressions
- Module Module2
- Public Const C_REGULAR_NumLimit = "^\d{1,10}$" '卡号长度为10个以内字节的正则表达式
- Public Const C_REGULAR_Chinese = "^[\u4e00-\u9fa5]{0,}$" '只能输入汉字的正则表达式
- ' 检测输入字符串是否匹配正则表达式项
- Public Function funCheckRegular(ByVal strPattern As String, TextReg As String)
- Return Regex.IsMatch(TextReg, strPattern)
- End Function
- ' 具体执行的判断函数,判断是否输入数字
- Public Function CheckRegular(ByVal arrayControl() As Term, ByVal strPattern As String, Warning As String) As Boolean
- Dim termControl As Term '声明一个Term类型变量termControl
- '遍历结构体数组中的所有元素,如果控件文本输入不合法,则给出相应返回值
- For Each termControl In arrayControl '遍历结构体数组中所有元素
- If TypeOf termControl.controlSub Is TextBox Then '判断控件是否为文本框
- If termControl.controlSub.Text.Trim <> "" Then '判断文本框内容是否为空,不为空往下执行
- If funCheckRegular(strPattern, termControl.controlSub.Text) = False Then
- MessageBox.Show(termControl.controlsub.Text + "栏 - -!" + Warning, "友情提示", MessageBoxButtons.OK, MessageBoxIcon.Information)
- termControl.controlsub.Focus() '为空控件得到焦点
- Return False
- Exit Function
- End If
- End If
- End If
- Next
- Return True
- End Function
- End Module
- Public Sub RdimNum()
- ReDim Preserve arrayControl(4) '重定义数字数组维数
- '初始化数组
- arrayControl(0) = New Term(txtCardNo, "卡号")
- arrayControl(1) = New Term(txtCash, "充值金额")
- arrayControl(2) = New Term(txtStudentNo, "学号")
- arrayControl(3) = New Term(txtGrade, "年级")
- arrayControl(4) = New Term(txtClass, "班级")
- End Sub
- Public Sub RdimStrNum()
- ReDim Preserve arrayControl(1) '重定义字符数组维数
- '初始化数组
- arrayControl(0) = New Term(txtDepartment, "系别")
- arrayControl(1) = New Term(txtName, "姓名")
- End Sub
- '判断用户输入是否合法(数字)。
- Call RdimNum()
- Dim strPattern = C_REGULAR_NumLimit '正则表达式
- Dim Warning As String = "只能输入1-10个数字"
- If CheckRegular(arrayControl, strPattern, Warning) = False Then
- Exit Sub
- End If
- '判断用户输入是否合法(字母)。
- Call RdimStrNum()
- Dim pattern = C_REGULAR_Chinese '正则表达式
- Dim Warn As String = "只能输入汉字"
- If CheckRegular(arrayControl, pattern, Warn) = False Then
- Exit Sub
- End If
总结:正则表达式的特点是:
1. 灵活性、逻辑性和功能性非常的强;
2. 可以迅速地用极简单的方式达到字符串的复杂控制。
3. 对于刚接触的人来说,比较晦涩难懂。
百度一下,会找到很多的关于正则表达式的字符串规则。在这里只是提到一些皮毛,在以后的学习中多多实践,减少代码的重复。
0 0
- 机房重构--正则表达式
- 机房重构--正则表达式
- 【机房重构】正则表达式
- 【个人机房重构】——限制字符串输入(正则表达式)
- 【机房重构】总结
- 机房重构总结
- 机房重构小结
- 机房重构--sqlhelper
- 机房重构总结
- 机房重构有感
- 【机房重构】sqlHelper
- 【机房重构】注册
- 机房重构总结
- 机房重构
- 机房重构
- 【机房重构】SQLHelper
- 机房重构---小结
- 机房重构总结
- supervisor管理tornado项目,参数丢失【待解决】
- Java中控制double类型小数点后位数的方法
- stm32f4 discovery开发板usb全速修改测试
- 欧拉工程第19题
- HDU 1049 Climbing Worm
- 机房重构--正则表达式
- 机器学习实战——Logistic回归
- 新浪微博开发之十七(图片工具)
- NodeJS数据对象获取
- bzoj-3211 花神游历各国
- 欢迎使用CSDN-markdown编辑器
- PHP将数组存入数据库中的四种方式
- Unity3d 真实的植物渲染
- 再来说一说PHP购物车实现方法