限制字符串输入——正则表达式(VB.NET)

简介: <h1><span style="font-size:24px">   1、概述<br></span></h1> <p><span style="font-size:24px"><span style="font-family:KaiTi_GB2312; font-size:18px"><span style="font-size:24px"> </span>在做机房收费系统的时候,几乎

   1、概述

 在做机房收费系统的时候,几乎所有的窗体上都存在着文本框或者组合框,当用户进行操作的时候,首先要判断是否为空,然后再对各种属性进行判断,比如;卡号、学号、金额等只能输入数字,有些信息只能输入字母,或者将一些信息的输入设为只能输入数字和字母。举个例子,我们注册邮箱的时候,就会有一些特定字符的设置:

    下面是163邮箱注册的页面

    

    在我们做机房收费系统时,如果用常规的方法,直接用ASCII码进行设置的话,就感觉有点复杂,现在我们一起来认识认识程序员必备的七种技能之一的“正则表达式”。



 2、什么是正则表达式?

  首先看一张漫画:

 

 正则表达式就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。

   举个例子:只能输入数字:“^[0-9]*$”。

             只能输入汉字:“^[\u4e00-\u9fa5]{0,}$”。

             只能输入由26个英文字母组成的字符串:“^[A-Za-z]+$”。



  3、怎么使用正则表达式?

 下面就一起来看看怎么使用它。

   咱们以添加新用户的窗体为例:

                       

  

    Public Const C_REGULAR_LenNum = "^[A-Za-z0-9]+$"         '只能输入由数字和26个英文字母组成的字符
    Public Const C_REGULAR_NumLimit = "^\\d{6,16}$"          '只能输入6至16位的数字。

    ''' <summary>
    ''' 检测输入字符串是否匹配正则表达式项
    ''' </summary>
    ''' <param name="strPattern">正则表达式项</param>
    ''' <param name="TextReg">输入字符串</param>
    ''' <returns>返回结果是否匹配</returns>
    ''' <remarks><span style="font-family:KaiTi_GB2312;">2014年8月28日16:02:20</span></remarks>
    Public Function funCheckRegular(ByVal strPattern As String, TextReg As String)
        Return Regex.IsMatch(TextReg, strPattern)
    End Function
    ''' <summary>
    ''' 具体执行的判断函数,判断是否输入数字
    ''' </summary>
    ''' <param name="arrayControl">结构体数组</param>
    ''' <returns>True则表示匹配,false则不匹配</returns>
    ''' <remarks>2014-07-09 10:30:24</remarks>
    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.strText + "栏 - -!" + Warning, "友情提示", MessageBoxButtons.OK, MessageBoxIcon.Information)
                        termControl.controlSub.Focus()               '为空控件得到焦点
                        Return False
                        Exit Function
                    End If
                End If
            End If
        Next
        Return True
    End Function


下面的代码是在界面层(UI)如何调用:

    Public Sub RdimStrNum()
        ReDim Preserve arrayControl(0)  '重定义数组维数
        '初始化数组
        arrayControl(0) = New Term(txtUserID, "用户名")
    End Sub

    Public Sub RdimNum()
        ReDim Preserve arrayControl(1)  '重定义数组维数
        '初始化数组
        arrayControl(0) = New Term(txtUserPWD, "密码")
        arrayControl(1) = New Term(txtConfirm, "确认密码")
    End Sub

        '判断用户输入是否合法(数字和字母)
        Call RdimStrNum()
        Dim strPattern = C_REGULAR_LenNum        '正则表达式
        Dim Warning As String = "只能输入由数字和26个英文字母组成的字符"
        If CheckRegular(arrayControl, strPattern, Warning) = False Then
            Exit Sub
        End If

        '判断用户输入是否合法(数字)
        Call RdimNum()
        Dim pattern = C_REGULAR_NumLimit    '正则表达式
        Dim Warn As String = "请输入6至16位数字"
        If CheckRegular(arrayControl, pattern, Warn) = False Then
            Exit Sub
        End If


  3、结束语

 在程序员日常工作中,数据处理占据了相当的比重。而所有的数据之中文本又占据了相当的比重。文本能够被人理解、具有良好的透明性,利于系统开发、测试和维护等就必需要有一定规律遵循一种规则,而正则表达式正是我们所需要的,它提供给我们强大的字符串处理的能力。

 




转载请注明出处:http://blog.csdn.net/zlts000/article/details/38021335

  

相关文章
|
4月前
|
Java API 索引
U4字符串以及正则表达式
【10月更文挑战第19天】在 Java 中,字符串是重要数据类型,支持多种操作如长度获取、字符访问、子串提取等。正则表达式提供强大的模式匹配和文本处理功能,通过 `Pattern` 和 `Matcher` 类实现。示例代码展示了如何使用正则表达式匹配单词字符。常用语法包括字符类、数量词、边界匹配和分组。
|
4月前
|
JavaScript 前端开发 Java
如何使用这个正则表达式来验证一个字符串是否符合特定的格式要求?
如何使用这个正则表达式来验证一个字符串是否符合特定的格式要求?
|
5月前
|
前端开发 C#
C# 一分钟浅谈:字符串操作与正则表达式
本文详细介绍C#中的字符串操作与正则表达式应用,涵盖字符串拼接、分割、查找及替换等基础操作,并通过实例讲解正则表达式的模式匹配、文本替换与分组捕获技巧。同时,文章还探讨了性能优化、复杂度管理和安全性等问题及解决策略,助你提升编程效率,应对实际开发挑战。
99 0
|
5月前
|
JavaScript 前端开发 Java
使用这个正则表达式来验证一个字符串是否符合特定的格式要求
使用这个正则表达式来验证一个字符串是否符合特定的格式要求
165 5
如何根据文件夹中文件,生成对应名字的图片,名称一样的路径,这里用到了变量,将集合定义在外面,字符串拼接,正则表达式截取.jpg文件
如何根据文件夹中文件,生成对应名字的图片,名称一样的路径,这里用到了变量,将集合定义在外面,字符串拼接,正则表达式截取.jpg文件
|
8月前
|
数据采集 Java 开发者
正则表达式替换字符串的最佳实践与应用
正则表达式替换字符串的最佳实践与应用
|
8月前
|
Python
Python使用正则表达式分割字符串
在Python中,你可以使用re模块的split()函数来根据正则表达式分割字符串。这个函数的工作原理类似于Python内置的str.split()方法,但它允许你使用正则表达式作为分隔符。
|
9月前
|
数据挖掘 程序员 索引
探索Python的字符串操作和正则表达式
【4月更文挑战第8天】Python以其优雅的语法和强大的文本处理能力,让处理文本数据变得简单有趣。本文介绍了字符串操作和正则表达式的应用。在Python中,字符串是字符序列,支持拼接、索引和切片。正则表达式则提供灵活的模式匹配,用于查找、替换和分割文本。通过`re`模拝,我们可以实现对特定模式的精准匹配,如查找不分大小写的&quot;Python&quot;,或替换电子邮件地址为星号。学习和掌握这些工具,将使你在文本处理任务中更加高效,成为信息时代的艺术家。
44 1
|
9月前
|
JavaScript 前端开发
用JavaScript正则表达式匹配对应字符串高亮显示,并过滤掉空格、<、>等HTML节点符号
用JavaScript正则表达式匹配对应字符串高亮显示,并过滤掉空格、<、>等HTML节点符号
|
9月前
|
JavaScript 前端开发 Java
正则表达式深度解析:匹配任意字符串
【4月更文挑战第1天】
4614 0