限制字串輸入——正則表達式(VB.NET)

來源:互聯網
上載者:User

標籤:exit   for   ram   iss   log   運行   str   fonts   font   

   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, "username")    End Sub    Public Sub RdimNum()        ReDim Preserve arrayControl(1)  ‘重定義數組維數        ‘初始化數組        arrayControl(0) = New Term(txtUserPWD, "password")        arrayControl(1) = New Term(txtConfirm, "確認password")    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

  

限制字串輸入——正則表達式(VB.NET)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.